當前位置:編程學習大全網 - 源碼下載 - eclipse中memory視圖,registers視圖如何用?

eclipse中memory視圖,registers視圖如何用?

如果使用DDMS確實發現了我們程序中存在內存泄露,那如何定位到具體出現問題的代碼片段,最終找到問題所在呢?如果從頭到尾分析代碼邏輯,那肯定會把人逼瘋,特別是在維護別人寫的代碼的時候。這裏介紹壹個極好的內存分析工具Memory Analyzer Tool(MAT)。

在Eclipse中安裝和使用MAT步驟

Eclipse安裝Allocation tracker插件

MAT是壹個Eclipse插件,同時也有單獨的RCP客戶端。

如果安裝Eclipse插件(更方便使用,本文介紹的是使用Eclipse插件)。使用ing references,它會生成壹個heap上的所有該對象數組的列表,我們可以按照Shallow Heap的使用情況來排序。

選擇壹個較大的對象,右擊,選擇Path to GCRoot->exclude weak/soft reference。

被JVM持有的對象,如當前運行的線程對象,被systemclass loader加載的對象稱為GC Roots。從壹個對象到GC Roots的引用鏈被稱為Path to GC Roots,

通過分析Path to GC Root可以找出Java的內存泄露問題,當程序不在訪問該對象時,仍然存在到該對象的引用路徑。

MAT不會明確的告訴我們這就是內存泄露,因為它也不知道這個東西是不是程序需要的,只有程序員知道。

點擊Domanitor_tree按鈕,彈出新的窗口,列出了對中最大的對象,第二層級節點標識當被第壹層級的節點所引用到的對象,當第壹層級的節點被回收時,這些對象也將會回收。

這個工具可以幫我們定位對象間的引用情況,垃圾回收時候的引用關系。

  • 上一篇:我想建設壹個個人主頁。用自己電腦做服務器的那種,高手請指點
  • 下一篇:沈度源代碼
  • copyright 2024編程學習大全網