前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jmap使用方法及原理

jmap使用方法及原理

作者头像
山行AI
发布2019-06-28 12:50:21
7.7K0
发布2019-06-28 12:50:21
举报
文章被收录于专栏:山行AI

1. jmap常用命令

在cmd或者shell窗口输入jmap -h,输出如下结果:

代码语言:javascript
复制
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
    -clstats             to print class loader 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

1. jmap -heap

查看java堆的信息以及垃圾回收算法等

可以看到堆的分代情况以及各区域的使用情况,垃圾收集器使用的是Parallel GC与java -XX:+PrintCommandLineFlags -version得到的结果一致:

2. jmap -histo[:live]

打印当前java堆中所有对象的实例数和大小等,加了live选项则只打印存活的对象

3. jmap -clstas

打印class loader的统计信息

4. jmap -finalizerinfo

打印在等待执行finalize方法的对象

5. jmap -dump:<dump-options>

dump-options主要有:

  • live 只dump存活的对象,如果不加则会dump所有对象
  • format=b 表示以二进制格式
  • file=filepath 输出到某个文件中

把java堆中的对象dump到本地文件,然后使用第三方工具进行分析,如MAT,JProfile,IBM的分析工具等

6. jmap -F

与-dump 和-histo一起使用,强制执行后者 jmap -F -dump:live,format=b,file=heap.bin

2. 与jvm通信方式attach机制

attach 就是jvm提供一种jvm进程间通信的能力,能让一个进程传命令给另外一个进程,并让它执行内部的一些操作:

3. jmap操作所使用的attach机制

  • -dump和-histo[:live] 默认使用的是VirtualMachine.attach
  • -pmap 、-heap、-heap:format=b、-clstats、-finalizerinfo、-J默认使用的是SA
  • -F可以把默认使用VirtualMachine.attach的方式改成SA attach方式
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-05-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 开发架构二三事 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. jmap常用命令
    • 1. jmap -heap
      • 2. jmap -histo[:live]
        • 3. jmap -clstas
          • 4. jmap -finalizerinfo
            • 5. jmap -dump:<dump-options>
              • 6. jmap -F
              • 2. 与jvm通信方式attach机制
              • 3. jmap操作所使用的attach机制
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档