JVM 性能排查--查看哪個對象占用內存大


參考:http://blog.csdn.net/chenleixing/article/details/44227327/

 

 

1.  在IE地址欄中輸入:http://localhost/test/init1.jsp,執行一次,我們可以在內存視圖中看到cn.test.TestBean對象被創建了10000次:

 

2.標記現在的狀態,然后再執行init1.jsp和,init2.jsp可以讓我們找到哪些類在調用后沒有被釋放(很重要!!!)

 

查看哪些類被發生了變化:

 

紅色的變成是發生變化的對象及其數量。

我剛才執行了4次init1.jsp和1次init2.jsp,正好產生了50000個TestBean對象,和圖示顯示的一樣。

3.  過一會后,按F4鍵進行垃圾回收。但回收完成后,這些對象依然存在,說明某些地方對這個類的引用沒有被釋放!

4.  找出是哪些地方使用了TestBean類,並且沒有釋放它們

在cn.test.TestBean對象上點擊右鍵選擇“Take Heap Snapshot for Selection”,觀察它的heap

 

下一步:

 

點擊“OK”:

 

在該類中點擊右鍵,在出現的菜單中選擇“Use Selected Objects”:

 

出現如下窗口:

 

選擇”Allocations”,點擊“OK”,然后我們要的結果就出來了

 

圖中顯示調用此類的地方是init1.jsp和init2.jsp,並且各自占用的比率都列出來了。

既然問題的所在找出來了,接下來就該去解決問題了!


免責聲明!

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



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