性能优化 内存泄漏分析 mat使用

 

1)首先去官网下载一个独立mat.app

2)在as的monitor上dump java heap生成一个xxxx.hprof的文件,这个文件不能直接使用

3)然后通过命令转换成mat能够直接使用的文件

hprof-conv -z /Users/mac/Desktop/com.tencent.movieticket_2017.06.23_13.25.hprof /Users/mac/Desktop/mat20170623

com.tencent.movieticket_2017.06.23_13.25.hprof是我们要转换的文件

mat20170623是生成的mat能识别的文件

 

4)然后使用mat打开文件 下面是界面

性能优化 内存泄漏分析 mat使用性能优化 内存泄漏分析 mat使用

最常用的是histogram和Dominator Tree

histogram界面

性能优化 内存泄漏分析 mat使用性能优化 内存泄漏分析 mat使用

 

Dominator Tree界面

性能优化 内存泄漏分析 mat使用

性能优化 内存泄漏分析 mat使用

为了分析内存泄漏我们需要分析Dominator tree中的内存信息,在dominator tree中的内存泄漏一般不会直接显示出来,需要我们按从小到大的顺序去排查

 

性能优化 内存泄漏分析 mat使用

第二项的BitmapDrawable,选中它 单击鼠标右键:Path To GC Roots -> exclude weak/soft references,会出现下面的界面

性能优化 内存泄漏分析 mat使用

性能优化 内存泄漏分析 mat使用

然后我们在里面查找,是否有activity被持有,无法释放