使用Eclipse MAT查找内存泄漏工具介绍

来源:互联网 发布:淘宝直播视频开店教程 编辑:程序博客网 时间:2024/05/16 02:56

一、MAT是什么?

      MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存中对象的占用大小,看看是谁阻止了垃圾收集器的回收工作,并可以通过报表直观的查看到可能造成这种结果的对象。

 

二、如何使用

使用的方法将dump文件导入然后进行分析。

方法如下:

1、通过JMX的MBean生成当前的Heap信息,大小为一个3G(整个堆的大小)的hprof文件,如果没有启动JMX可以通过Java的JMAP命令来生成该文件。

 

2、 要考虑的是如何打开这个DUMP的堆信息文件,显然一般的Window系统没有这么大的内存,必须借助高配置的Linux。当然我们可以借助X-Window把Linux上的图形导入到Window。我们考虑用下面几种工具打开该文件:

Visual VM、IBM HeapAnalyzer、JDK 自带的Hprof工具。

 

       使用这些工具时为了确保加载速度,建议设置最大内存为6G。使用后发现,这些工具都无法直观地观察到内存泄漏,Visual VM虽能观察到对象大小,但看不到调用堆栈;HeapAnalyzer虽然能看到调用堆栈,却无法正确打开一个3G的文件。可以使用MAT工具直接导入文件,生成图表信息和疑似有问题的JAVA类,如下图所示:

 

原创粉丝点击