下载分析工具
内存溢出分析工具: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进去查看泄露报告
如下图可找到出问题的代码!!!