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。