天天看點

jvm工具系列之 -- jmap

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