下載下傳分析工具
記憶體溢出分析工具:Eclipse Memory Analyzer
下載下傳位址:http://www.eclipse.org/mat/downloads.php
配置環境參數
通常而言,分析一個堆轉儲檔案需要消耗很多的堆空間,為了保證分析的效率和性能,建議配置設定給 MAT 盡可能多的記憶體資源。方法如下:
編輯檔案 MemoryAnalyzer.ini,在裡面添加類似資訊 -vmargs – Xmx5g。
創造記憶體溢出
public class HeapOOM {
static class oomObject{}
public static void main(String[] args) {
List<oomObject> list=new ArrayList<oomObject>();
while(true)
list.add(new oomObject());
}
}
獲得堆轉儲檔案
為你的eclipse、Idea等工具加上生産.hprof檔案的配置
-XX:+HeapDumpOnOutOfMemoryError -Xms100m -Xmx150m
設定-Xms100m -Xmx150m是為了盡快記憶體溢出,并且生成的檔案不至于過大
運作代碼,等待記憶體溢出,産生的檔案在工作空間項目根目錄
生成分析報告
首先,啟動前面安裝配置好的 Memory Analyzer tool , 然後選擇菜單項 File- Open Heap Dump 來加載需要分析的堆轉儲檔案。檔案加載完成後,你可以看到下圖所示界面
點leak suspects進去檢視洩露報告
如下圖可找到出問題的代碼!!!