Eclipse Memory Analysis进行堆转储文件分析
生成堆转储文件
新建项目,设置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文件,存放在转储文件的目录。可直接使用浏览器查看。

浙公网安备 33010602011771号