一般我们在分析java进程的内存使用状况的时候经常会使用jmap -heap:format=b <pid>的命令将进程内存dump成heap.bin文件。但是这种方式有时候会不成功,而且dump的速度不理想。其实还有另外一种dump方法。先利用gcore命令生成core.xxx文件,然后对这个文件使用jmap命令,具体方法如下:
gcore xxxx
jmap -heap:format=b <java binary path> core.xxxx
其中java binary path是java可执行文件的全路径名,比如:$JAVA_HOME/bin/java。如果这个配置错误将会有以下提示:
Error attaching to core file: Can't attach to the core file