`

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

阅读更多
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
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics