标签:
MAT(Memory Analyzer Tool) 是基于heap dumps来进行内存分析的工具,一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。
在android studio中打开Android Monitor面板,选择Memory,点击左侧dump java heap按钮dump内存信息,会在项目的captures文件夹下生成.hprof文件,(进文件夹里看,)如下图所示。
但是上面生成的文件并不能在mat中打开,我们需要使用hprof-conv工具转一下,hprof-conv在SDK的platform-tools下,windos下双击启动,ubuntu下./hprof-conv启动,转化命令如下
hprof-conv 输入文件路径 输出文件路径
结果如图显示:
,这样我们就可以在mat中打开了。
当然,我们也可以直接在eclipse中启动DDMS,点击dump xxx,然后stop,就会被mat自动打开了,如下图:
注意下方的actions区域,这是我们需要重点关注的对象。
在dominator tree 试图下,点击某个对象,右键Path To GC Roots —> with all references ,查看引用关系。如下图
看到,我这里只有一个引用,复杂的对象是有引用链的,不在多说了,
上面说了那么多,然而,并没有什么乱用,稀里糊涂的看了一些图,稀里糊涂的知道了一些视图,但是,妈的 我们还不知道怎么去查看哪些有内存泄露。但是,在4.5中我们可以看到GC roots可以看到引用关系,那么,我们就可以通过他来查看了,通过层层的引用关系,我们可以追溯到最终的引用点,通过结合代码分析以及检查引用类型以及被引用类等等。
额,这么多下来,我也仅仅是了解到基本用法了,还有更多的用法需要我在工作中去领悟。
最后。给出几个参考链接。
标签:
原文地址:http://blog.csdn.net/qq_21430549/article/details/51173369