美文网首页
内存分析MAT Android Studio

内存分析MAT Android Studio

作者: ab64fd4eaee3 | 来源:发表于2017-03-20 01:23 被阅读10次

http://www.jianshu.com/p/d8e247b1e7b2

http://yuanyang5917.github.io/memory-analyzer-tool

Histogram (柱状图)

Shallow heap

Shallow size就是对象本身占用内存的大小,不包含其引用的对象。

常规对象(非数组)的Shallow size有其成员变量的数量和类型决定。

数组的shallow size有数组元素的类型(对象类型、基本类型)和数组长度决定

Retained Heap

Retained Heap的概念,它表示如果一个对象被释放掉,那会因为该对象的释放而减少引用进而被释放的所有的对象(包括被递归释放的)所占用的heap大小。

Dominator (支配者)tree

outgoing references :表示该对象的出节点(被该对象引用的对象)。

incoming references :表示该对象的入节点(引用到该对象的对象)。

GC Root

GC发现通过任何reference chain(引用链)无法访问某个对象的时候,该对象即被回收。

Strong Ref(强引用):通常我们编写的代码都是Strong Ref,于此对应的是强可达性,只有去掉强可达,对象才被回收。

Soft Ref(软引用):对应软可达性,只要有足够的内存,就一直保持对象,直到发现内存吃紧且没有Strong Ref时才回收对象。一般可用来实现缓存,通过java.lang.ref.SoftReference类实现。

Weak Ref(弱引用):比Soft Ref更弱,当发现不存在Strong Ref时,立刻回收对象而不必等到内存吃紧的时候。通过java.lang.ref.WeakReference和java.util.WeakHashMap类实现。

Phantom Ref(虚引用):根本不会在内存中保持任何对象,你只能使用Phantom Ref本身。一般用于在进入finalize()方法后进行特殊的清理过程,通过 java.lang.ref.PhantomReference实现。

JVM内存区域

http://www.jianshu.com/p/5db05db4f5ab

前台进程

可见进程

服务进程

后台进程

空进程

https://joyrun.github.io/2016/08/08/AndroidMemoryLeak/

http://blog.csdn.net/editor1994/article/details/50394560

相关文章

网友评论

      本文标题:内存分析MAT Android Studio

      本文链接:https://www.haomeiwen.com/subject/xdqbnttx.html