利用mat定位app内存泄露原因
运行app
ddms--update heap
点击gc,观察heap(主要看data object的totle size)
不断操作app
发生内存泄露(data object的totle size不断增长,直到达到系统极限,系统不能再分配内存,app崩溃)
分析前预备:
获取内存泄露文件
ddms中点击工具栏dump prof file,进行泄露文件的保存
文件转换
win+r-cmd--hprof-conv xxx-a.hprof xxx-b.hprof
MAT分析:
histogram--shallow heap排序-list objects-withincoming references--gc root,非常好定位
a.histogarm查看
b.shallow heap排序,选择最大的那个
c.list objects-withincoming references
d.再选择最大shallow heap的那个,gc root,找路径链
e.定位结束(从底层开始shallow heap是层层递增的,retained heap变化没那么大,最底层就是出问题的那层了)
MAT下载地址:
http://www.eclipse.org/mat/downloads.php
本文转载:https://blog.csdn.net/u011649536/article/details/50817454