JVM jmap工具介绍举例说明用法

jmap 是 JDK 自带的一种用于生成堆转储快照的工具。该工具可以将 JVM 堆中的对象、类、线程、实例等信息生成快照,以便于后续分析,通常用于定位内存泄漏和内存溢出等问题。

jmap 命令的常用选项如下:

-dump: 用于生成堆转储快照。
-F: 如果进程没有响应,则强制生成转储快照。
-h: 显示命令选项的帮助信息。
-histo: 显示堆中的对象统计信息。
-J: 将选项传递给 Java 虚拟机。
-p: 指定要生成快照的进程 ID。
-l: 列出 JVM 加载的共享库的信息。

以下是 jmap 命令的几个例子:

1、生成进程 PID 为 1234 的 Java 堆转储快照:

jmap -dump:format=b,file=heap.bin 1234

运行该命令后,会在当前目录下生成一个名为 heap.bin 的文件,其中包含了进程 PID 为 1234 的 Java 堆转储快照。

2、显示进程 PID 为 1234 的 Java 堆中对象的统计信息:

jmap -histo 1234

运行该命令后,会输出进程 PID 为 1234 的 Java 堆中对象的统计信息。

3、列出进程 PID 为 1234 的共享库信息:

jmap -p 1234 -l

运行该命令后,会列出进程 PID 为 1234 的 JVM 加载的共享库信息。