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。