1.获取出现OutOfMemoryError时对应的heap dump
通过在启动命令中追加如下jvm参数
-XX:+HeapDumpOnOutOfMemoryError
此时当应用程序出现OutOfMemoryError会在当前的工作目录下生成dump文件。可以追加如下jvm参数修改dump文件的路径
-XX:HeapDumpPath=/Users/chengaofeng/Downloads/dump
例如在eclipse中,通过如下方式追加
通过命令行启动程序时,在命令行中追加
java -server -Xmx40m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Users/chengaofeng/Downloads/dump -classpath <...> <mainclass>
2.通过可交互命令获取heap dump
在启动命令中追加如下jvm参数
-XX:+HeapDumpOnCtrlBreak
这样可在任意想获取dump文件时,执行按下CTRL + BREAK即可
3.通过jmap命令
jmap -dump:format=b,file=<filename.hprof> <pid>
4.通过JConsole
4.1 在运行你想分析的应用的机器上启动JConsole(Linux、Mac os系统安装好jdk后直接在命令行输入jconsole即可启动,window机器上到jdk安装目录下启动./bin/jconsole.exe),启动后在jconsole页面选择自己想要分析的应用
4.2 接着选择MBean下com.sun.management.HotSpotDiagnostic操作中对应的dumpHeap,界面中有两个参数
- p0:dump file的全路径名如/Users/chengaofeng/Downloads/dump
- p1:一般情况下都设置成true,代表我们只关心当前存活的对象
4.3 点击dumpHeap按钮,就会在对应的位置生成dump文件
5.利用MAT获取
之后选择对应的应用和文件保存地址即可
- 大小: 80.9 KB
- 大小: 74 KB
- 大小: 134.7 KB
- 大小: 131.7 KB
- 大小: 134.7 KB
- 大小: 79.7 KB
- 大小: 159.8 KB
分享到:
相关推荐
除了heapdump-tool,还有一些其他类似的工具,如Eclipse Memory Analyzer (MAT)、YourKit Java Profiler等,它们都提供了丰富的内存分析功能。在实际使用中,根据项目需求和个人喜好选择合适的工具是非常重要的。 ...
分析HeapDump可以使用如Eclipse Memory Analyzer Tool (MAT)、VisualVM、JProfiler等专业工具。 在分析JavaCore和HeapDump时,首先需要获取这些文件。对于JavaCore,这通常是通过操作系统提供的手段触发JVM生成,...
MAT是Eclipse项目的一部分,它是一款免费且开源的工具,专门用于分析Java堆转储(Heap Dump)文件,帮助开发者识别内存泄漏、分析内存占用情况以及优化内存使用。MAT提供了丰富的功能和视图,使得复杂的内存问题变得...
本文将详细讲解如何使用`jmap`中的`-dump:format=b,file=heapdump.hprof`选项来生成堆栈文件,并利用MAT(Memory Analyzer Tool)进行分析。 首先,`jmap`是Java HotSpot虚拟机的一个命令行工具,它可以提供关于JVM...
标题中的“内存分析工具MAT”指的是Eclipse Memory Analyzer Tool,它是一个强大的分析工具,能够处理大型的heap dump文件。通过深入分析内存分配,MAT能找出可能存在的内存泄漏点和不必要的对象引用,从而帮助...
MAT(Memory Analyzer Tool)是由IBM开发的一款强大的Java堆内存分析器,它的全名是Eclipse Memory Analyzer。这款工具是开源的,完全免费,并且是基于Eclipse IDE构建的,因此对于熟悉Eclipse的开发者来说,上手...
9. **DOM分析器**:对于处理XML的Java应用,MAT提供了DOM分析器,可以识别可能导致内存问题的大型XML文档。 10. **自定义查询**:用户还可以使用OQL(Object Query Language)编写自定义查询,进一步探索内存使用...
本文将详细介绍如何使用 MAT 分析 Android 应用程序中的内存泄露,特别是如何根据 heap dump 分析泄漏根源。 ClassLoader 和 Java 类加载机制 在介绍 MAT 之前,需要了解 Java 类加载机制。ClassLoader 是 Java 中...
MAT(Memory Analyzer Tool),一个基于Eclipse的内存分析工具,是一个快速、功能丰富的JAVA heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗。使用内存分析工具从众多的对象中进行分析,快速的计算出在内存...
### Eclipse MAT:Java内存分析的必备中文指南 #### 一、引言 Eclipse Memory Analyzer Tool(MAT)是一款专门用于Java应用程序内存分析的强大工具。它不仅适用于初学者,也深受经验丰富的开发者的喜爱。MAT可以...
MAT(Memory Analyzer Tool)是一款由Eclipse基金会提供的免费内存分析工具,主要用于Java应用的堆内存分析,特别是针对那些产生了dump文件的应用程序。通过MAT,开发人员可以有效地识别内存泄漏、优化内存使用,并...
MAT(Memory Analyzer Tool)是一款强大的64位内存分析工具,由Eclipse基金会开发,专为Java开发者和运维人员设计,用于检测和诊断内存泄漏问题。 MAT提供了一个直观的用户界面,支持对.hprof文件进行深度分析,...
而Eclipse Memory Analyzer Tool (MAT)是一款强大的图形化内存分析工具,它能够帮助我们分析heapdump文件,找出内存泄漏的源头。本篇文章将详细介绍`jmap`和MAT的使用及其在内存分析中的作用。 首先,`jmap`是Java ...
分析`heapDump.hprof`文件可以使用各种工具,例如Oracle的JVisualVM、Eclipse Memory Analyzer Tool (MAT)或IntelliJ IDEA自身的内存分析插件。这些工具可以帮助我们找出内存泄漏的根源,例如查找长时间存活且占用...
MAT是一款非常实用的内存分析工具,它可以解析heap dump文件,展示详细的内存占用情况,包括对象实例、类、包和域等信息。通过MAT,我们可以找到内存泄漏的线索,如持久存在且占用大量内存的对象,以及它们之间的...
它能够深入解析heap dump文件,展示对象统计信息、内存占用量、引用链以及类加载器的细节。通过这些信息,用户可以发现哪些对象占用了过多内存,以及它们之间的引用关系,从而找出潜在的内存泄漏源。 以下是MAT的...
4. **JProfiler**:另一款强大的商业Java性能分析器,支持内存分析、CPU分析等,提供了丰富的可视化报告。 接下来,Thread Dump(Java Core)是JVM在某个时间点捕获的当前所有线程的状态快照,包括线程ID、线程状态...
Eclipse Memory Analyzer(内存分析器)是一款专门为Java堆内存分析而设计的工具,它可以协助开发者快速地分析内存泄漏问题,通过生成的报告指出潜在的内存泄漏可疑点。Memory Analyzer可以单独使用,也可以作为...
4. **DOM Analyzer**:对于处理XML数据的应用,MAT提供了DOM分析器,能专门分析Document Object Model (DOM) 对象的内存占用,这对于Web应用或使用大量XML处理的系统尤其有用。 5. **Dominator Tree和Heavy Hitters...