在上一篇博客http://blog.youkuaiyun.com/aitangyong/article/details/24009283中介绍了dump的一些基本概念,这一篇博客介绍如何在windows/linux平台下获取dump文件,为后续的学习打下基础。我们使用的JDK工具在JDK_HOME/bin/目录下,使用到jmap和jstack这2个命令。
获取heap dump文件
windows下切换到JDK_HOME/bin/,执行以下命令:jmap -dump:format=b,file=m.hprof 4612
linux下切换到JDK_HOME/bin/,执行以下命令:./jmap -dump:format=b,file=m.hprof 4612
这样就会在当前目录下生成m.hprof文件,这就是heap dump文件。
获取thread dump文件
windows下执行:jstack 4612 > 1.txt
linux下执行:./jstack 4612 > 1.txt
windows/linux则会将命令执行结果转储到1.txt,这就是thread dump文件。有了dump文件后,我们就能借助性能分析工具获取dump文件中的信息。
如果我们只需要将dump中存活的对象导出,那么可以使用:live参数
jmap -dump:live,format=b,file=m.hprof 4612