首先我们要学会如何生成hprof文件
DDMS生成hprof文件
步骤
1.在AS中打开DDMS,运行程序
2.在Devices中选择要分析的应用程序进程,点击UpdateHeap按钮之后开始追踪
3.进行可能发生内存泄漏的操作
4.单击Dump HPROP File 按钮结束追踪,生成并保存hprof文件
DDNS生成的hporf文件并不是标准的,还需元京塔转换成为标准的hprof文件才能被MAT识别从而进行分析(可以使用SDK自带的hporf-conv进行转换路径在sdk/platform-tools中输入命令 实例:hporf-conv D:\before.hprof D:\after.hprof 第一个是要转换的文件,第二个是转换后的文件)
打开MAT之后,加载dump文件,差不多就下面这样的界面。
一般用到比较多的2个功能
1、Histogram
2、Leak Suspects
Histogram
这个功能主要是查看类和对象关系,对象和对象之间的关系,用来定位哪些对象在FGC之后还活着,哪些对象占大部分内存。
1、点开Histogram,可列出每一个类的实例数,支持正则表达式查找,也可以计算出该类所有对象的retained size。
Shallow Heap就是对象本身占用内存的大小&#x