JVM性能调优监控工具jmap

文章目录

  • 一、作用
  • 二、语法
    • 1.命令格式
    • 2.jps
    • 3.option相关参数
      • ①-help
      • ②-heap
      • ③-histo[:live]
      • ④-clstats
      • ⑤-finalizerinfo
      • ⑥-dump:(dump-options)
        • dump-options选项:
      • ⑦-F

一、作用

监控内存内的Java对象

二、语法

1.命令格式

jmap [option] <pid>

2.jps

①在搜索栏中输入cmd,回车打开
②输入jps出现如下界面
在这里插入图片描述
③其中4320是eclipse的进程id(即命令格式中的pid)

3.option相关参数

①-help

帮助工具
JVM性能调优监控工具jmap_第1张图片

②-heap

打印Java堆概要信息,包括使用的GC算法、堆配置参数和各代中堆内存使用情况
JVM性能调优监控工具jmap_第2张图片
JVM性能调优监控工具jmap_第3张图片

③-histo[:live]

打印Java堆中对象直方图,通过该图可以获取每个class的对象数目,占用内存大小和类全名信息,带上:live,则只统计活着的对象

jmap -histo:live 4320 > out.txt//输入代码进行测试

将输出的结果放入out.txt文件中(文件所在根目录C:\Users\kjw,可通过全盘搜索查找)
JVM性能调优监控工具jmap_第4张图片

④-clstats

打印永久代统计信息、
JDK7以前还有永久代,JDK8以后永久代被元空间代替
故-permstat命令变为-clstats
JVM性能调优监控工具jmap_第5张图片
上述过程后Eclipse暂停服务

⑤-finalizerinfo

打印等待回收的对象信息
在这里插入图片描述

Number of objects pending for finalization: 0 
//说明当前F-QUEUE队列中并没有等待Fializer线程执行finalizer方法的对象

⑥-dump:(dump-options)

以hprof二进制格式将Java堆信息输出到文件内,该文件可以用MAT、VisualVM或jhat等工具查看

dump-options选项:

    live 只输出活着的对象;不指定,则输出堆中所有对象
    format=b 指定输出格式为二进制
    file= 指定文件名及文件存储位置

例子如下:
在这里插入图片描述
在D盘中生成下图文件在这里插入图片描述

⑦-F

与-dump: 或-histo一起使用,当没有响应时,强制执行;
注意:不支持live子选项

你可能感兴趣的:(JVM性能调优监控工具jmap)