jmap使用详解_jmap作用

jmap使用详解_jmap作用1. jmap-heappid     查看Java 堆(heap)使用情况       usingthread-localobjectallocation.       ParallelGCwith4thread(s)         //GC方式        HeapConfiguration:      //堆内存初始化配置      …

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

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+类名表示

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/213400.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • C语言学习——sprintf函数详细解释及其用法

    C语言学习——sprintf函数详细解释及其用法sprintf指的是字符串格式化命令,函数声明为 int sprintf(char *string, char *format [,argument,…]);,主要功能是把格式化的数据写入某个字符串中,即发送格式化输出到 string 所指向的字符串。sprintf 是个变参函数。使用sprintf 对于写入buffer的字符数是没有限制的,这就存在了buffer溢出的可能性。解决这个问题,可以…

  • pip更新方法

    pip更新方法pip更新方法如下:方法一:pycharm中的Terminal中更新,使用如下命令:python-mpipinstall–upgradepip方法二:删除原pip文件,重新安装例如pip文件在如下文件夹中C:\Python\Python373\Lib\site-packages我们能够知道pip20.1.1所在路径,找到它,然后删掉pip-20.1.1.dist-info文件夹。设置如下图,已不见pip的踪影。提示,packagi…

  • TCP四次挥手详解[通俗易懂]

    TCP四次挥手详解[通俗易懂]在开始之前可以先了解一下TCP三次握手TCP四次挥手过程和状态变迁在断开连接之前客户端和服务器都处于ESTABLISHED状态,双方都可以主动断开连接,以客户端主动断开连接为优。第一次挥手:客户端打算断开连接,向服务器发送FIN报文(FIN标记位被设置为1,1表示为FIN,0表示不是),FIN报文中会指定一个序列号,之后客户端进入FIN_WAIT_1状态。也就是客户端发出连接释放报文段(FIN报文),指定序列号seq=u,主动关闭TCP连接,等待服务器的确认。第二次挥…

  • crm创建基于fetch自己的自定义报告

    crm创建基于fetch自己的自定义报告

  • Java介绍,发展历史,Java语言的优势,Java开发什么软件,Java用到的术语JDK,JRE,JVM等,Java命令Java,javac,javados等

    Java介绍,发展历史,Java语言的优势,Java开发什么软件,Java用到的术语JDK,JRE,JVM等,Java命令Java,javac,javados等1.Java是什么(Java是一种高级语言)2,.Java发展历史以及JDK版本3.java能做什么,可用于开发什么软件。4.Java语言相对于其他语言的优势Java中用到的一些术语(JRE,JDK,JVM)提前检测本机中是否安装好JDK之类的东西可以通过在dos窗口中输入一些指令来完成安装JDK时,先点击运行.exe文件,安装完成后windows+R—->输入cmd——->可在dos窗口输入Java命令来判断是否安装成功,步骤如下图所示。安装成功一般在

  • OleDbCommand 的特点

    OleDbCommand 的特点OleDbCommand的特点在于以下对数据源执行命令的方法:ExecuteReader 执行返回行的命令。如果用ExecuteReader执行如SQLSET语句等命令,则可能达不到预期的效果。ExecuteNonQuery 执行SQLINSERT、DELELE、UPDATE和SET语句等命令。ExecuteScalar 从数据库中检索单个值(例如一个聚合值)。您

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号