本文介紹了Java:內存分析器工具(MAT)用法:比較兩個堆轉儲的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我使用的是Eclipse+MAT插件。我可以看到一個.hprof文件堆歷史記錄,我為我的Java應用程序拍攝了兩個快照。我希望當我比較兩個堆轉儲時,我可以計算出哪個對象實例增加了很多,這樣我就可以識別內存泄漏的可能性。
netbean可以做到這一點嗎?
推薦答案
說明
-
在MAT中打開兩個堆轉儲
打開顯示異常行為的堆轉儲(通常是內存或線程使用率較高的堆轉儲)的直方圖。
-
將其與另一個堆轉儲進行比較
-
從列表中選擇適當的堆轉儲
解釋結果
類名:應用程序中實例化的類,占用內存
對象:類實例數量的計數高于或低于其他堆轉儲。
淺堆:給定類在其他堆轉儲上方或下方的內存中占用的字節數。
提示
由于MAT默認按降序排序,因此我建議切換對象和淺堆列的順序,以查看每個列在兩個方向上的最大異常值。
通常您應該忽略純Java類,如String、Array和Maps,而專注于您的應用程序定義的類。
引用
Comparing Objects Official Eclipse Help Doc
這篇關于Java:內存分析器工具(MAT)用法:比較兩個堆轉儲的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,