Eclipse Memory Analysis進行堆轉儲文件分析,eclipseanalysis
生成堆轉儲文件
新建項目,設置Eclispe Java堆的大小:
(1)限制Java堆大小:將最小值 -Xms參數與最大值-Xmx參數設置一樣可避免堆的擴展
-Xmx20m -Xms20m -Xmn10m -Xss1m
(2)通過參數:
-XX:+HeapDumpOnOutOfMemoryError,可以讓VM在出現內存溢出異常時Dump當前內存堆轉儲快照
-Xmx20m -Xms20m -Xmn10m -Xss1m -XX:+HeapDumpOnOutOfMemoryError
模擬堆溢出代碼:
public class HeapOOM {
static class OOMObject{
}
public static void main(String[] args) {
List<OOMObject> list = new ArrayList<>();
for (int i = 0; i >= 0 ; i++) {
list.add(new OOMObject());
}
}
}
控制台:
本地轉儲文件
查看生成分析報告
查看詳細信息:
MAT工具有個功能,可以將報告打包成一個zip文件,存放在轉儲文件的目錄。可直接使用浏覽器查看。