java生成dump文件 jmap 命令(轉)


轉載自:http://blog.csdn.net/wych1981/article/details/46728933

1.  jmap -heap pid  如:jmap -heap 14548

         查看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.dat  pid)

          將內存使用的詳細情況輸出到文件

           用jhat命令可以參看 jhat -port 5000 m.dat 

        在瀏覽器中訪問:http://localhost:5000/  查看詳細信息

       sun 官方文檔  http://download.Oracle.com/javase/1.5.0/docs/tooldocs/share/jmap.html


class name對應的就是Class文件里的class的標識
B代表byte
C代表char
D代表double
F代表float
I代表int
J代表long
Z代表boolean
前邊有[代表數組,[I 就相當於int[]

對象用[L+類名表示


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM