Mat监测内存泄露

Posted 刘兆贤

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mat监测内存泄露相关的知识,希望对你有一定的参考价值。

 

                本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处!

 

Mat最早在Elicpse,到今未在androidStudio上,找到类似的功能,最近在排查内存泄露问题,因此又拿出来用了。

步骤如下:

1、将应用进程杀掉,以免出现数据冗余,影响出现实验结果

2、将应用打开,到相关要实验的页面,模拟相关功能,测试相关流程,再关闭页面,重复几次。

3、获取类GC数据的hprof文件,

adb shell am dumpheap com.yp.app /data/local/tmp/live.hprof
hprof-conv C:\\Users\\fred\\Desktop\\app_now.hprof ~ C:\\Users\\fred\\Desktop\\live_new.hprof

4、打开Eclispe,安装MAT,下载地址:http://download.eclipse.org/mat/1.10.0/update-site/

5、使用Eclipse,打开此hprof文件,点此树形按钮,获得此时的内存树

6、按此步骤,查找GCRoots,查出“真凶”。建议多放置一段时间,内存并不是回收那么快的。

 

7、根据引用链,找到触发内存泄露的GCRoots。

8、根据代码规范,去优化掉相关代码。确认优化完毕之后,再重复此流程,直到此泄露不再出现,即宣告大功完成!

以上是关于Mat监测内存泄露的主要内容,如果未能解决你的问题,请参考以下文章

如何使用MAT分析Android应用内存泄露

LeakCanary 内存泄露监测原理研究

Android常见内存泄露分析及MAT与Profiler内存分析时间

内存泄露监测工具

内存优化:Mat大对象与泄露检测

Windows 下都有哪些内存泄露监测工具