您的位置:首页 > 编程语言 > Java开发

eclipse安装、使用MAT(MemroyAnalyzerTool)内存泄漏分析工具

2018-02-12 12:11 639 查看
eclispe的MAT(MemroyAnalyzerTool)插件为内存分析插件,用于监控分析eclipse的内存泄漏等问题。
1.安装插件
打开eclipse的heap-Install New Software...,Add..输入url:http://download.eclipse.org/mat/1.6/update-site/
    


添加后会显示插件列表,全选,接下来全部都是下一步了。



2.编写内存溢出代码及配置堆大小并执行
安装完成后开始模拟内存泄漏进行分析,我们建立测试内存溢出的类,其实就是无限的向list中添加对象,直至内存泄漏。
public class Test {
public static void main(String[] args) {
List list = new ArrayList();
while(true) {
list.add(new Test());
}
}
}

然后在新建的的类上右键Debug As选择Debug Configurations,打开页面后选择Arguments页签,在VM arguments中设置堆的大小及堆转储配置,(-Xms20M -Xmx20M -XX:+HeapDumpOnOutOfMemoryError) 前面两个参数设置堆的最小值及最大值,后面开启java堆转储功能。



配置好后点击Debug控制台打出了内存溢出的异常
    


此时我们在新建类的项目上右键刷新,可以看到java_pid6020.hprof文件,文件默认生成在项目的根目录,如果没有也可以去跟目录找一下。



3.内存泄漏报告分析
右键-open打开,提示页面默认显示是否打开转储的内存溢出报告,选择finish,打开分析报告。







根据描述我们看到有97.22%的内存被一个方法为main的线程占用,然后我们点击details查看明细。



上面是内存被占用线程,中间是赌赢变量,下面对应的详细信息,被我们的Test类中的main函数的Arraylist占用,现在基本定位到问题所在,直接修改即可。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: