天天看點

jmap詳解

1.  jmap -heap pid

        檢視java 堆(heap)使用情況

       using thread-local object allocation.

       Parallel GC with 4 thread(s)          //GC 方式          Heap Configuration:       //堆記憶體初始化配置

        MinHeapFreeRatio=40     //對應jvm啟動參數-XX:MinHeapFreeRatio設定JVM堆最小空閑比率(default 40)

        MaxHeapFreeRatio=70  //對應jvm啟動參數 -XX:MaxHeapFreeRatio設定JVM堆最大空閑比率(default 70)

        MaxHeapSize=512.0MB  //對應jvm啟動參數-XX:MaxHeapSize=設定JVM堆的最大大小

        NewSize  = 1.0MB          //對應jvm啟動參數-XX:NewSize=設定JVM堆的‘新生代’的預設大小

        MaxNewSize =4095MB   //對應jvm啟動參數-XX:MaxNewSize=設定JVM堆的‘新生代’的最大大小

        OldSize  = 4.0MB            //對應jvm啟動參數-XX:OldSize=<value>:設定JVM堆的‘老生代’的大小

        NewRatio  = 8         //對應jvm啟動參數-XX:NewRatio=:‘新生代’和‘老生代’的大小比率

        SurvivorRatio = 8    //對應jvm啟動參數-XX:SurvivorRatio=設定年輕代中Eden區與Survivor區的大小比值

         PermSize= 16.0MB       //對應jvm啟動參數-XX:PermSize=<value>:設定JVM堆的‘永生代’的初始大小

         MaxPermSize=64.0MB  //對應jvm啟動參數-XX:MaxPermSize=<value>:設定JVM堆的‘永生代’的最大大小

         Heap Usage:               //堆記憶體分步

         PS Young Generation

         Eden Space:          //Eden區記憶體分布

           capacity = 20381696 (19.4375MB)  //Eden區總容量

           used     = 20370032 (19.426376342773438MB)  //Eden區已使用

           free     = 11664 (0.0111236572265625MB)  //Eden區剩餘容量

           99.94277218147106% used  //Eden區使用比率

        From Space:        //其中一個Survivor區的記憶體分布

            capacity = 8519680 (8.125MB)

            used     = 32768 (0.03125MB)

            free     = 8486912 (8.09375MB)

            0.38461538461538464% used

       To Space:            //另一個Survivor區的記憶體分布

           capacity = 9306112 (8.875MB)

           used     = 0 (0.0MB)

           free     = 9306112 (8.875MB)

           0.0% used

       PS Old Generation  //目前的Old區記憶體分布

           capacity = 366280704 (349.3125MB)

           used     = 322179848 (307.25464630126953MB)

           free     = 44100856 (42.05785369873047MB)

           87.95982001825573% used

       PS Perm Generation  //目前的 “永生代” 記憶體分布

           capacity = 32243712 (30.75MB)

           used     = 28918584 (27.57891082763672MB)

           free     = 3325128 (3.1710891723632812MB)

           89.68751488662348% used

     2. jmap -histo pid

       檢視堆記憶體(histogram)中的對象數量,大小

               num     #instances         #bytes  class name

               序号         執行個體個數            位元組數       類名    

       ----------------------------------------------

        1:       3174877      107858256  [C

        2:       3171499       76115976  java.lang.String

        3:       1397884       38122240  [B

        4:        214690       37785440  com.tongli.book.form.Book

        5:        107345       18892720  com.tongli.book.form.Book

        6:         65645       13953440  [Ljava.lang.Object;

        7:         59627        7648416  <constMethodKlass>

        8:        291852        7004448  java.util.HashMap$Entry

        9:        107349        6871176  [[B

        ..........

       total       9150732      353969416

     3. jmap - dump  pid

         将記憶體使用的詳細情況輸出到檔案

         jmap -dump:format=b,file=m.datpid

class name對應的就是Class檔案裡的class的辨別

B代表byte

C代表char

D代表double

F代表float

I代表int

J代表long

Z代表boolean

前邊有[代表數組,[I 就相當于int[]

對象用[L+類名表示

繼續閱讀