jmap
是 Java 提供的一个命令行工具,用于生成堆转储(heap dump)或打印出堆的内存映射。要设置输出格式,您需要使用 -format
选项,后面跟一个描述符。以下是一些常用的输出格式描述符:
b
- 二进制格式(默认)h
- 十六进制格式p
- 性能数据格式s
- 对象统计信息格式t
- 线程转储格式x
- 十六进制对象显示格式c
- 类加载器转储格式f
- 堆转储过滤格式e
- 打印堆的内存映射例如,要以十六进制格式生成堆转储,您可以使用以下命令:
jmap -dump:format=b,file=heapdump.hprof <pid>
其中 <pid>
是目标 Java 进程的进程 ID。这将生成一个名为 heapdump.hprof
的堆转储文件,其内容为十六进制格式。
要查看堆的内存映射,您可以使用以下命令:
jmap -heap <pid>
这将输出类似以下内容的信息:
Heap Configuration:
...
MaxHeapSize = 4294967296 (4096.0MB)
...
请注意,jmap
的输出格式可能会随着 JDK 版本的不同而有所变化。要获取有关 jmap
的详细信息,请在命令行中输入 jmap -help
。