Eclipse Memory Analyzer 内存分析

下载分析工具


    内存溢出分析工具: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文件的配置

Eclipse Memory Analyzer 内存分析

-XX:+HeapDumpOnOutOfMemoryError -Xms100m -Xmx150m

设置-Xms100m -Xmx150m是为了尽快内存溢出,并且生成的文件不至于过大

 

运行代码,等待内存溢出,产生的文件在工作空间项目根目录

Eclipse Memory Analyzer 内存分析

 

生成分析报告 

首先,启动前面安装配置好的 Memory Analyzer tool , 然后选择菜单项 File- Open Heap Dump 来加载需要分析的堆转储文件。文件加载完成后,你可以看到下图所示界面

Eclipse Memory Analyzer 内存分析

点leak suspects进去查看泄露报告

如下图可找到出问题的代码!!!

Eclipse Memory Analyzer 内存分析

Eclipse Memory Analyzer 内存分析