Eclipse Memory Analyzer使用
阿新 • • 發佈:2019-01-06
Eclipse Memory Analyzer是Eclipse提供的記憶體分析工具,是一個快速、功能豐富的JAVA heap分析工具,它可以幫助查詢java程序dump後的檔案。
下載:https://www.eclipse.org/mat/downloads.php
Mac中開啟會報錯,參看提示的錯誤log有如下內容:
… java.lang.IllegalStateException: The platform metadata area could not be written: /private/var/folders/k4/knjt7v5x59l25z_tqmvg094r0000gn/T/AppTranslocation/3CBB3175-DD9A-4A3A-B93F-898BA4445384/d/mat.app/Contents/MacOS/workspace/.metadata. By default the platform writes its content under the current working directory when the platform is launched. Use the -data parameter to specify a different content area for the platform. …
原因是那個檔案是隻讀檔案,解決方案是 選中 mat圖示
->右鍵
->顯示包內容
->Contents
->Eclipse
->MemoryAnalyzer.ini
,編輯檔案MemoryAnalyzer.ini
:
-startup ../Eclipse/plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar -data /Users/zero/logs --launcher.library ../Eclipse/plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.700.v20180518-1200 -vmargs -Xmx4096m -Dorg.eclipse.swt.internal.carbon.smallFonts -XstartOnFirstThread
新增data引數,注意data引數和路徑必須在兩個不同的行,data引數必須放在Laucher之前。為了防止dump檔案太大MAT打不開,順帶把-Xmx
調大一點。
Overview:以餅狀圖的形式列舉出了程式記憶體消耗的一些基本資訊,其中每一種不同顏色的餅塊都代表了不同比例的記憶體消耗情況。
Histogram:可以列出記憶體中的物件,物件的個數以及大小。
Dominator Tree:可以列出那個執行緒,以及執行緒下面的那些物件佔用的空間。
Top consumers:通過圖形列出最大的object。
Leak Suspects:通過MA自動分析洩漏的原因。