jmap (Memory Map for Java)用于生成堆轉儲快照。
jamp指令格式:
jmap [ option ] vmid
選項 作用
-dump 生成Java堆轉儲快照。格式為:-dump:[live,]format=b,file=<filename>,其中live子參數表示是否隻dump出活的對象。
-finalizerinfo 顯示在F-Queue中等待Finalizer線程執行finalize方法的對象。隻在Linux/Solaris平台有效。
-heap 顯示Java 堆詳細資訊,如使用哪種回收器、參數配置、分代狀況等。隻在linux/Solaris平台下有效。
-histo 顯示堆中對象統計,包括類、執行個體數量,合計容量。
-permstat 以ClassLoader為統計口徑顯示永久代記憶體狀态。隻在Linux/Solaris平台有效。
-F 當虛拟機程序對-dump選項沒有響應時,可使用這個選項強制生成dump快照。隻在Linux/Solaris平台有效。
示例如下:
以下指令為pid為79157的程序生成dump檔案。
jmap -dump:live,format=b,file=jvm-dump-79157.bin 79157
以下指令為pid為86844的程序生成對象統計資訊,結果隻展示一部分。
jmap -histo 86844
num #instances #bytes class name
----------------------------------------------
1: 13008 4688496 [B
2: 24037 2807456 [C
3: 2006 2782848 [I
4: 6036 466928 [Ljava.lang.Object;
5: 16912 405888 java.lang.String
6: 3553 395832 java.lang.Class
7: 6927 221664 java.util.concurrent.ConcurrentHashMap$Node