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)來分析和查看這個文件。