記憶體洩漏檢測分析工具mat(memory analyzer tool) 的使用
.下載、安裝
地址:http://www.eclipse.org/mat/downloads.php 直接解壓即可
初始介面
.獲取對應程序的heapdump,使用jmap命令
jmap -dump:live,format=b,file=test.hprof(儲存的檔名字) pid(應用對應的程序id)
此時觸發 jvm FGC
.點選Open a Heap Dump選擇heap dump檔案
.建議獲取不同時段的heapdump 在mat中開啟比較分析
開啟兩個heapdump,勾選Leak Suspects、選擇Hsitogram介面
-
Histogram可以列出記憶體中的物件,物件的個數以及大小。
-
Dominator Tree可以列出那個執行緒,以及執行緒下面的那些物件佔用的空間。
-
Top consumers通過圖形列出最大的object。
-
Leak Suspects通過MA自動分析洩漏的原因。
2中選擇 group by package 對比兩邊資料、排查問題
Leak Suspects(mat自動分析得出的可能出現問題的地方)
深色部分為懷疑記憶體洩漏區域
點選details檢視
1.Shortest Paths To the Accumulation Point 表示 GC root到記憶體消耗聚集點的最短路徑
2.All Accumulated Objects by Class列舉了該物件所儲存的所有內容。
參考文章
https://www.aliyun.com/jiaocheng/1838798.html?spm=5176.100033.2.19.25935c6fuCrYo0
https://www.aliyun.com/jiaocheng/839560.html?spm=5176.100033.2.14.25935c6ffWLuRK