`

用Eclipse Memory Analyzer查找内存泄露

阅读更多

     系统上线后,程序报出out of memory错误。一方面先加大程序运行的内存以解燃眉之急,另一方面希望能有个工具能查出内存泄露的原因。

 

    通过查阅资料发现了Memory Analyzer这个eclipse插件,下面讲下怎么用。

 

    首先,获取Heap dump文件。 

有三种方式:

    1、设置JVM参数,-XX:+HeapDumpOnOutOfMemoryError,在内存溢出的时候就会生成Heap dump文件

    2、使用jmap。(windows可以通过任务管理器查看pid)

Java5:jmap -heap:format=b <pid>;

Java6:jmap -dump:format=b,file=HeapDump.bin <pid>

    3、在本机运行java程序的时候,直接通过Memory Analyzer生成Heap dump文件。

 

 

    其次,安装Memory Analyzer。

现在已经出1.2.1了,下载地址http://www.eclipse.org/mat/downloads.php

也可以通过eclipse install new software ,地址http://download.eclipse.org/mat/1.2/update-site/

 

    安好后就可以开始看问题啦!

进入后,主页面如下图所示:

 

 

 

从上图可以看到它的大部分功能。
     1. Histogram可以列出内存中的对象,对象的个数以及大小。
     2. Dominator Tree可以列出那个线程,以及线程下面的那些对象占用的空间。
     3.Top consumers通过图形列出最大的object。
     4.Leak Suspects通过MA自动分析泄漏的原因。

这次重点是看Leak Suspects,点开后就能看到

 

 

 

点 Detial就能看到实际的一些情况,因为我的错误比较2,所以到这步就能看到原因,fix it!

 

 

 

 

另外想要用这个工具了解更多程序运行的情况,发现隐藏问题,可以看

http://eclipsesource.com/blogs/2013/01/21/10-tips-for-using-the-eclipse-memory-analyzer/

还有一个中文的博客,写的也很详细

http://tivan.iteye.com/blog/1487855

 

  • 大小: 98.1 KB
  • 大小: 169.3 KB
  • 大小: 221.4 KB
  • 大小: 227.2 KB
分享到:
评论
1 楼 一EE 2016-01-30  
插件更新地址:http://download.eclipse.org/mat/1.5/update-site/

相关推荐

    MemoryAnalyzer-1.12.0.20210602-win32.win32.x86-64.zip

    资源名称:Eclipse Memory...Eclipse Memory Analyzer是一个快速而功能丰富的Java堆分析器,可帮助您查找内存泄漏并减少内存消耗。 这个版本是支持jdk11的,上一个1.11的版本是jdk1.8的。收大家分就是因为下载比较难搞。

    MAT(Memory Analyzer Tool)内存分析工具的安装与使用

    使用MAT分析Java堆快照,可以快速计算出对象的保留大小(Retained Sizes),查找到阻止对象被回收的原因,MAT会自动生成一个包含内存泄漏疑点的报告。 MAT是有两种安装方式的,这一点与其他eclipse插件略有不同。 ...

    eclipse MAT(Memory Analyzer Tool)

    MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存...

    MemoryAnalyzer-1.11.0.20201202-win32.win32.x86-64.zip

    Eclipse Memory Analyzer是一个快速而功能丰富的Java堆分析器,可帮助您查找内存泄漏并减少内存消耗。 这个版本是支持jdk1.8的,下一个1.12版本直接是jdk11起步了。收大家分就是因为下载比较难搞。

    MemoryAnalyzer-1.9.2.20200115-macosx.cocoa.x86_64.zip

    Eclipse Memory Analyzer是一个快速且功能丰富的Java堆分析器,可帮助您查找内存泄漏并减少内存消耗。使用Memory Analyzer分析具有数亿个对象的高效堆转储,快速计算对象的保留大小,查看谁阻止垃圾收集器收集对象,...

    MemoryAnalyzer-1.9.1.win32.x86_64.zip

    MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存...

    MemoryAnalyzer-1.9.0.201906050844.zip

    MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存...

    MemoryAnalyzer-1.11.0.20201202-win32.win32.x86_64.zip.7z

    MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存...

    Tomcat内存泄露问题排查

    MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的Java heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存...

    MAT工具(基于Eclipse的内存分析工具)+MAT工具使用说明.docx

    MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存...

    Java+内存分析工具+MAT

    MAT是Memory Analyzer的简称,它是一款功能强大的Java堆内存分析器。可以用于查找内存泄露以及查看内存消耗情况。MAT是基于Eclipse开发的,是一款免费的性能分析工具。

    mat_windows64位-2019年8月版.zip

    MemoryAnalyzer-1.9.1.20190826_mat.zip MAT是Memory Analyzer的简称,它是一款功能强大的Java堆内存分析器。可以用于查找内存泄露以及查看内存消耗情况。MAT是基于Eclipse开发的,是一款免费的性能分析工具。

    MAT工具让你像专家一样分析和解决Java内存问题

    MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存...

    memory-dump-analyzer:Clojure实用工具,用于分析ObjectSpace内存转储以查找泄漏

    $ java -jar dump-analyzer-0.1.0-standalone.jar [args] 选项 FIXME:此应用程序接受的选项列表。 例子 ... 虫子 ... 任何其他部分 你以为 可能有用 执照 版权所有:copyright:2015 FIXME 根据Eclipse Public ...

Global site tag (gtag.js) - Google Analytics