jmap
是 Java 提供的一个命令行工具,用于生成堆转储文件(heap dump)或打印出堆的内存映射。要使用 jmap
生成堆转储文件,请按照以下步骤操作:
首先,确保你的 Java 应用程序正在运行,并且你想要生成堆转储文件的时刻已经到来。
打开命令行界面(在 Windows 上是 CMD 或 PowerShell,在 Linux 或 macOS 上是 Terminal)。
使用 jmap
命令生成堆转储文件。以下是命令的基本格式:
jmap -dump:[live,]format=b,file=<output_file> <pid>
参数说明:
-dump
: 表示要生成堆转储文件。[live]
: 可选参数,表示是否只转储活动对象。如果不指定此参数,将转储整个堆。format=b
: 表示转储格式为二进制。还有其他格式可选,如 hprof
(用于 Eclipse MAT 分析器)等。file=<output_file>
: 指定输出文件的名称和路径。<pid>
: 运行 Java 应用程序的进程 ID。例如,要为 PID 为 1234 的 Java 进程生成堆转储文件,并将其保存为 heap_dump.hprof
,请使用以下命令:
jmap -dump:live,format=b,file=heap_dump.hprof 1234
这将生成一个名为 heap_dump.hprof
的堆转储文件,其中包含活动对象的内存映射。你可以使用内存分析工具(如 Eclipse MAT)来分析此文件以查找内存泄漏或其他性能问题。