Eclipse 内存分析器MAT(三)获取heap dumpheap dump

阅读更多
1.获取出现OutOfMemoryError时对应的heap dump
通过在启动命令中追加如下jvm参数
-XX:+HeapDumpOnOutOfMemoryError
此时当应用程序出现OutOfMemoryError会在当前的工作目录下生成dump文件。可以追加如下jvm参数修改dump文件的路径
-XX:HeapDumpPath=/Users/chengaofeng/Downloads/dump

例如在eclipse中,通过如下方式追加

Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第1张图片

通过命令行启动程序时,在命令行中追加
java -server -Xmx40m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/Users/chengaofeng/Downloads/dump -classpath <...> 

2.通过可交互命令获取heap dump
在启动命令中追加如下jvm参数
-XX:+HeapDumpOnCtrlBreak
这样可在任意想获取dump文件时,执行按下CTRL + BREAK即可
3.通过jmap命令
jmap -dump:format=b,file= 

4.通过JConsole
4.1 在运行你想分析的应用的机器上启动JConsole(Linux、Mac os系统安装好jdk后直接在命令行输入jconsole即可启动,window机器上到jdk安装目录下启动./bin/jconsole.exe),启动后在jconsole页面选择自己想要分析的应用

Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第2张图片

4.2 接着选择MBean下com.sun.management.HotSpotDiagnostic操作中对应的dumpHeap,界面中有两个参数
  • p0:dump file的全路径名如/Users/chengaofeng/Downloads/dump
  • p1:一般情况下都设置成true,代表我们只关心当前存活的对象


Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第3张图片

4.3 点击dumpHeap按钮,就会在对应的位置生成dump文件

Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第4张图片

5.利用MAT获取

Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第5张图片
之后选择对应的应用和文件保存地址即可

Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第6张图片
  • Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第7张图片
  • 大小: 80.9 KB
  • Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第8张图片
  • 大小: 74 KB
  • Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第9张图片
  • 大小: 134.7 KB
  • Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第10张图片
  • 大小: 131.7 KB
  • Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第11张图片
  • 大小: 134.7 KB
  • Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第12张图片
  • 大小: 79.7 KB
  • Eclipse 内存分析器MAT(三)获取heap dumpheap dump_第13张图片
  • 大小: 159.8 KB
  • 查看图片附件

你可能感兴趣的:(eclipse,MAT)