jmap
是 Java 提供的一个命令行工具,用于生成堆转储(heap dump)或打印出堆的内存映射
以下是使用 jmap
生成堆转储的步骤:
jps
命令来查找所有 Java 进程的 PID。例如:jps
这将显示类似以下的输出:
12345 Main
67890 Jps
在这个例子中,Main
是 Java 应用程序的进程名,67890
是它的 PID。
jmap
生成堆转储。你需要运行以下命令:jmap -dump:[live,]format=b,file=<output_file> <pid>
其中:
<live>
是一个可选参数,表示是否只转储活动对象。如果省略此参数,将转储所有对象。format=b
表示转储格式为二进制。还有其他格式可供选择,如 format=h
(十六进制)或 format=live
(仅转储活动对象)。<output_file>
是你要保存堆转储的文件名。<pid>
是 Java 进程的 PID。例如,要生成一个名为 heap_dump.hprof
的堆转储文件,可以使用以下命令:
jmap -dump:format=b,file=heap_dump.hprof 12345
这将生成一个名为 heap_dump.hprof
的二进制堆转储文件。你可以使用内存分析工具(如 Eclipse Memory Analyzer 或 VisualVM)来分析和查看这个文件。