系统上线后,程序报出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
相关推荐
Eclipse Memory Analyzer(MAT)是一款强大的Java内存分析工具,它被广泛用于诊断和解决Java应用程序中的内存泄漏问题。MAT 1.8.1是适用于macOS的特定版本,旨在帮助开发者深入理解并优化他们的Java应用内存使用情况...
Eclipse Memory Analyzer(MAT)是一款强大的Java虚拟机(JVM)内存分析工具,它能够帮助开发者定位并解决Java应用程序中的内存泄漏问题。MAT通过解析.hprof文件,即Java虚拟机生成的内存快照,来展示堆内存的详细...
Eclipse Memory Analyzer(MAT)是Eclipse基金会提供的一款强大的Java内存分析工具,它主要用于诊断Java应用程序的内存泄漏问题。MAT通过分析heap dump文件,能够帮助开发者深入理解内存消耗的细节,找出内存占用过...
使用MAT分析Java堆快照,可以快速计算出对象的保留大小(Retained Sizes),查找到阻止对象被回收的原因,MAT会自动生成一个包含内存泄漏疑点的报告。 MAT是有两种安装方式的,这一点与其他eclipse插件略有不同。 ...
MemoryAnalyzer,通常简称为MAT,是由Eclipse基金会开发的一款强大的Java堆内存分析工具。它能帮助开发者定位并解决Java应用程序中的内存泄露问题。MAT通过分析heap dump文件(即Java虚拟机的堆内存快照),提供详尽...
资源名称:Eclipse Memory...Eclipse Memory Analyzer是一个快速而功能丰富的Java堆分析器,可帮助您查找内存泄漏并减少内存消耗。 这个版本是支持jdk11的,上一个1.11的版本是jdk1.8的。收大家分就是因为下载比较难搞。
Eclipse Memory Analyzer(EMA),通常被称为MAT(Memory Analyzer Tool),是一款强大的Java堆内存分析工具,由Eclipse基金会开发。这款工具对于诊断Java应用程序中的内存泄漏和优化内存使用情况至关重要。以下将...
本文将深入探讨MemoryAnalyzer的使用方法,帮助开发者掌握其核心功能,解决常见的内存泄漏和性能问题。 1. **MemoryAnalyzer简介** MemoryAnalyzer,通常简称为MAT,是一款基于Eclipse平台的免费开源工具,专门...
Eclipse Memory Analyzer是一个快速而功能丰富的Java堆分析器,可帮助您查找内存泄漏并减少内存消耗。 这个版本是支持jdk1.8的,下一个1.12版本直接是jdk11起步了。收大家分就是因为下载比较难搞。
MemoryAnalyzer,即MAT(Memory Analyzer Tool),是一款由Eclipse基金会开发的强大的Java内存分析工具,尤其适用于IBM JVM(openj9)上的heap dump文件分析。本文将详细介绍MemoryAnalyzer的特性和功能,以及如何...
MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存...
Eclipse Memory Analyzer(MAT)是一款强大的Java内存分析工具,尤其适用于Linux环境。它是由Eclipse基金会开发的,专为诊断和解决Java应用程序的内存泄漏问题而设计。MAT 1.9.2是该工具的一个稳定版本,发布于2020...
Eclipse Memory Analyzer是一个快速且功能丰富的Java堆分析器,可帮助您查找内存泄漏并减少内存消耗。使用Memory Analyzer分析具有数亿个对象的高效堆转储,快速计算对象的保留大小,查看谁阻止垃圾收集器收集对象,...
Memory Analyzer,简称MAT,是一款由Eclipse基金会开发的强大内存分析工具,主要用于诊断Java应用程序的内存泄漏问题。本次发布的1.10.0版本,是针对Windows和Linux 64位系统的最新更新,集成在名为"Memory Analyzer...
它适用于各种操作系统,包括Windows,因此“MemoryAnalyzer-1.8”版本完美适配Windows用户。在本文中,我们将深入探讨MAT的功能、使用方法以及如何通过它来优化Java应用程序的内存性能。 1. **MAT的功能特性** - ...
《深入理解MemoryAnalyzer(MAT):Android内存泄漏分析利器》 MemoryAnalyzer,简称MAT,是IBM公司开发的一款强大的Java内存分析工具,尤其在处理Android应用的内存泄漏问题时,MAT显得尤为关键。本文将深入探讨...
MemoryAnalyzer(MAT)是Oracle公司推出的一款强大的内存分析工具,尤其在诊断Java应用程序的内存泄漏问题上表现突出。本文将详细解读MAT 1.10.0.2020022-linux.gtk.x86_64版本及其主要功能,帮助开发者更好地理解和...
总结来说,MemoryAnalyzer作为一款强大的JVM内存分析工具,对于优化Java应用的内存使用和解决内存泄漏问题具有不可替代的作用。通过深入理解和熟练运用MAT,开发者可以更好地管理和优化Java应用的内存,提升系统性能...
MemoryAnalyzer,通常被称为MAT(Memory Analyzer Tool),是一款由Eclipse基金会开发的强大内存分析工具。该工具主要用于诊断Java应用程序的内存泄漏问题,帮助开发者理解和解决性能瓶颈,提升程序的运行效率。在...
MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存...