jmap使用方法及原理

50 篇文章 2 订阅
4 篇文章 0 订阅

jmap使用方法及原理

 在这篇文章中:

  • 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机制

1. jmap常用命令

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

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方式
  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值