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监测内存泄露的主要内容,如果未能解决你的问题,请参考以下文章