利用mat定位內存泄露原因

前提:

運行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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章