利用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

 

posted @ 2019-11-17 22:57  weihanchen  阅读(16)  评论(0编辑  收藏  举报