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






