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