`

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


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

对象用[L+类名表示

分享到:
评论

相关推荐

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

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

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

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

    Java2语言命令详解

    Java2语言命令详解 在Java编程领域,理解并掌握各种命令行工具对于开发、调试和部署应用程序至关重要。本文将深入探讨Java2(也称为J2SE,Java 2 Standard Edition)中的关键命令,帮助开发者更好地驾驭Java环境。 ...

    JVM调优工具命令详解.pdf

    利用JPS获取进程ID后,便可以通过JVM自带的jmap命令来进一步分析进程内存使用情况。jmap命令能够帮助开发者查看内存信息、实例个数以及占用内存的大小。具体使用方法如下: 1. jmap -histo &lt;pid&gt;:此命令可以查看...

    jmap Eclipse内存分析工具.rar

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

    Java2 语言命令详解

    Java2 语言命令详解 Java2 语言是Java平台的核心组成部分,它提供了丰富的类库、强大的性能优化以及多线程支持。在Java2环境中,掌握各种命令行工具是每个开发者必备的技能。本文将深入探讨Java2语言命令的使用方法...

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

    Java虚拟机(JVM)调优是提升Java应用程序性能的关键环节。在JVM中,字符串对象的创建尤其值得关注,因为它们频繁出现且消耗大量的时间和内存。JVM为优化性能和节省内存,对字符串实例化采取了一种特殊策略,即字符...

    java 2语言命令详解

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

    java2应用命令详解

    Java 2 应用命令详解 在 Java 开发和运行环境中,掌握各种命令行工具是至关重要的。Java 2 应用命令主要指的是用于管理、编译、运行和调试 Java 程序的一系列命令。这些命令使得开发者能够在不同的操作系统上高效地...

    JVM、GC详解及调优

    **JVM详解** 1. **内存模型**:JVM内存分为堆内存(Heap)、方法区(Method Area)、虚拟机栈(JVM Stack)、本地方法栈(Native Method Stack)和程序计数器(PC Register)。其中,堆和方法区是线程共享的,而栈...

    java 2语言命令详解 JAVA程序设计

    Java 2语言命令详解是Java编程领域中的一个重要环节,它涉及到如何在命令行环境中编译、运行和管理Java应用程序。本文将深入解析Java 2语言的相关命令,帮助读者理解和掌握JAVA程序设计的基础知识。 首先,我们需要...

    JDK命令详解

    **JDK命令详解** 在Java开发中,JDK(Java Development Kit)是不可或缺的一部分,它提供了编译、运行和调试Java程序所需的所有工具。本文将深入解析JDK中的一些核心命令,帮助开发者更好地理解和利用这些工具。 #...

    java开发 线上问题排查命令详解

    Java开发线上问题排查命令详解 Java开发中的线上问题排查命令详解是指在Java开发中使用的一些常用命令来排查和解决线上问题。这些命令主要来自JDK的lib/tools.jar类库,安装JVM时会被安装到机器的bin目录下。 以下...

Global site tag (gtag.js) - Google Analytics