`

jmap使用详解

    博客分类:
  • java
阅读更多

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

           用jhat命令可以参看 jhat -port 5000 m.dat 
        在浏览器中访问:http://localhost:5000/  查看详细信息

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

    可通过jmap --help了解详细使用方法:
Usage:
    jmap [option] <pid>
        (to connect to running process)
    jmap [option] <executable <core>
        (to connect to a core file)
    jmap [option] [server_id@]<remote server IP or hostname>
        (to connect to remote debug server)

where <option> is one of:
    <none>               to print same info as Solaris pmap
    -heap                to print Java heap summary
    -histo[:live]        to print histogram of java object heap; if the "live"
                         suboption is specified, only count live objects
    -permstat            to print permanent generation statistics
    -finalizerinfo       to print information on objects awaiting finalization
    -dump:<dump-options> to dump java heap in hprof binary format
                         dump-options:
                           live         dump only live objects; if not specified,
                                        all objects in the heap are dumped.
                           format=b     binary format
                           file=<file>  dump heap to <file>
                         Example: jmap -dump:live,format=b,file=heap.bin <pid>
    -F                   force. Use with -dump:<dump-options> <pid> or -histo
                         to force a heap dump or histogram when <pid> does not
                         respond. The "live" suboption is not supported
                         in this mode.
    -h | -help           to print this help message
    -J<flag>             to pass <flag> directly to the runtime system

 

 


class name对应的就是Class文件里的class的标识
B代表byte
C代表char
D代表double
F代表float
I代表int
J代表long
Z代表boolean
前边有[代表数组,[I 就相当于int[]

对象用[L+类名表示

 

分享到:
评论

相关推荐

    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解.docx

    JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解 本文将对一些常用的 JVM 性能调优监控工具进行介绍,包括 jps、jstack、jmap、jhat、jstat 等工具的使用详解。这些工具对于 Java 程序员来说是必备的,...

    使用jmap分析Java程序性能问题

    #### jmap命令详解 ##### 堆内存直方图 通过`-histo`选项,jmap可以生成一个包含各种类型对象实例数量和总大小的直方图。这对于理解哪些对象占用了大量内存非常有用,可以帮助开发者识别可能存在的内存泄漏问题。...

    jmap Eclipse内存分析工具.rar

    **jmap Eclipse内存分析工具详解** 在Java开发中,内存管理是至关重要的,尤其是在大型应用或者长时间运行的服务中,内存泄漏可能导致系统性能下降甚至崩溃。为了有效地检测和诊断内存问题,Oracle提供了`jmap`...

    VisualVM 使用详解

    ### VisualVM 使用详解 #### 一、VisualVM简介 VisualVM是一款由Oracle提供的免费、开源的可视化工具,用于监控和调试Java应用程序。该工具能够帮助开发者深入理解Java虚拟机(JVM)上的应用程序行为,提供了丰富的...

    JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解.zip

    计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习参考资料计算机技术、IT咨询、人工智能AI理论介绍,学习...

    JVM、GC详解及调优

    GC(Garbage Collection)则是JVM中的内存管理机制,自动回收不再使用的对象所占用的内存空间,以避免内存泄漏。JVM与GC的调优是提高Java应用性能的关键环节,以下将对这两个主题进行深入探讨。 **JVM详解** 1. **...

    06-VIP-JVM调优实战及常量池详解(1)1

    这些日志包含了GC执行的时间、类型(如Full GC、PSYoungGen、ParOldGen、Metaspace)、内存区域的使用情况以及GC耗时等信息。 GC日志分析可以帮助识别潜在的内存泄漏或过度的垃圾收集活动。例如,日志中的“6160K-&gt;...

    java—JDK内置工具使用技巧详解

    ### JDK内置工具使用技巧详解 #### 一、引言 JDK(Java Development Kit)作为Java编程语言的核心组件,不仅提供了必要的编译、调试及文档工具,还配备了一系列用于监控和诊断应用程序运行状态的工具。本文将详细...

    05-VIP-JVM调优工具详解(预习资料)1

    在实际应用中,可以使用Jmap命令查看内存信息,使用Jvisualvm可视化性能数据,使用Jstack命令找到死锁和高CPU使用率的线程,使用JMX远程监控和管理Java应用程序。这些工具可以帮助开发者和运维人员更好地了解JVM的...

    JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat.doc

    ### JVM监控工具详解 在Java开发与运维领域,掌握有效的监控工具对于确保应用程序的稳定运行至关重要。本文将深入探讨六种关键的JVM监控工具——`jstack`, `jconsole`, `jinfo`, `jmap`, `jdb`, `jstat`——它们...

    VisualVM入门指南 使用说明 新手上路

    它集成了多种原本独立存在的命令行工具,如`jstat`, `JConsole`, `jstack`, `jmap`, 和 `jinfo`,并通过一个统一的图形用户界面(GUI)提供了更加直观的使用体验。 - **核心功能**: - **监视**:监控Java应用程序...

    Java2 语言命令详解

    9. **jmap和jhat**: jmap用于获取堆内存快照,jhat则用于分析这些快照,帮助诊断内存泄漏问题。 10. **jinfo**: 提供配置信息,如虚拟机参数,类路径等。 11. **jstat**: 监控JVM统计信息,如垃圾收集、内存使用等...

    Java2语言命令详解

    Java2语言命令详解 在Java开发中,理解并掌握各种命令行工具是至关重要的,特别是对于初学者和专业开发者来说。Java2语言命令主要指Java Development Kit (JDK) 提供的一系列命令行工具,它们在Java程序的编译、...

    JVM命令行监测工具详解

    jmap主要用于导出内存映像文件和查看内存使用情况。基本语法: - `jmap -dump:format=b,file=&lt;filename&gt; &lt;pid&gt;`:导出内存映像文件。 - `jmap -heap &lt;pid&gt;`:显示堆内存配置和使用情况。 - `jmap -histo &lt;pid&gt;`:列...

    java 2语言命令详解

    Java 2语言命令详解 Java 2平台是Java技术的核心组成部分,它提供了广泛的功能和工具,使得开发者能够创建、编译、运行Java应用程序。在Java 2中,有一系列的命令行工具,它们是开发过程中的重要环节。下面将详细...

Global site tag (gtag.js) - Google Analytics