jprofile查看hprof文件[轉]


用jprofile打開hprof文件,查看內存泄露情況,有幾個常用的功能說明一下:
工具下載:到官網下載jprofile7.0.1 64位的。再申請一個注冊號,注冊號的申請好像是一個郵件只能用一次。
1、打開hprof文件:進入classes視圖,根據(instance count和Size)基本可以確定哪個類的對象出現問題。比如(java.util.LinkedList$Entry類有2731062個實例)。
2、根據常識,應該java.util.LinkedList類有個對象的Size應該很大。
3、查看java.util.LinkedList,右鍵->use Selected Instance
4、選擇Outgoing reference 視圖(可以查看對象擁有的其他對象句柄,也就是對象屬性)。看Retained size列(或者size屬性)(有的時候Retained size不靈光),看大小就能確定是哪個對象內存溢出了。
5、找到對應的對象,右鍵->use Selected Instance
6、選擇Incoming refrences視圖(該視圖顯示哪些對象擁有本對象的句柄),在這個視圖下有個show Paths To GC Root的按鈕,點擊,基本能確定我們哪開代碼有問題了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM