首页 > 编程语言 > 详细

java_jvm工具

时间:2019-09-14 15:50:15      阅读:82      评论:0      收藏:0      [点我收藏+]

1  jvm工具有哪些?

在jdk的bin目录下,可见的都是jvm的工具。

技术分享图片

 

 

 2 每个工具是干什么的?

用于处理OOM或者fullgc时分析原因的工具

定位线程长时间未反应的原因。

可以在lib目下的tools.jar包中可以看到具体的工具是怎么实现的。可以将jar包拖到jd-gui.exe反编译工具中进行源码查看。

技术分享图片

 

 

 

3 jps工具

jps,简言之java的ps命令,跟Linux的ps的命令很相似,java虚拟机的进程查看工具,可以列出正在运行的虚拟机进程,并显示执行的主类(main所在的类)和进程id。

  • jsp -l

        展示pid和执行的主类

技术分享图片

 

 

  •  jps -m

输出传入 main 方法的参数。

技术分享图片

  • jps -v

展示jvm启动参数

技术分享图片

 

 

 4  jstat工具

  • jstat -gc pid 毫秒数m 行数n

每隔m毫秒数打印一行,一共打印n行

技术分享图片

 

 

s0c:第一个幸存区的总大小;s0u:第一个幸存区的已使用大小。

s1c:第二个幸存区的总大小;s1u:第二个幸存区的已使用大小

Ec:伊甸园区的总大小;Eu:伊甸园区已使用的大小

oc:老年代总大小 ;ou:老年代已使用的大小

Mc:方法区的总大小 ;Mu:方法区的总大小

ccsc:压缩类空间文件的总大小;ccsu:压缩类空间文件的已使用大小

ygc:年轻代垃圾回收的次数;ygct:年轻代垃圾回收消耗的时间

fgc:老年代垃圾回收的次数;fgct:老年代垃圾回收消耗的时间

gct:垃圾回收消耗的总时间。

 5 jinfo工具

实时地调整和查看虚拟机的各项参数

  • jinfo pid

技术分享图片

6 jmap工具

用于生成堆转储快照,用于系统复盘。

  • jmap -heap pid

展示堆信息

技术分享图片

 

 

  •  jmap -histo pid
  • 或者分页查看  jmap -histo pid|more

查看类的实例,instances显示实例的个数,byte为大小

技术分享图片

  •  jmap -dump:format=b,file=d:/test.bin pid

生成堆存储快照。

技术分享图片

  •  展示堆栈溢出的测试类,当运行中堆栈溢出时自动生成转储快照。
public class OOMTest {
    public static void main(String[] args){
        String a="测试数据";
        // 生成100000000个"测试数据"
        for(int i=0;i<100000000;i++){
            a+=a;
        }
    }
}

编辑jvm启动参数    -Xmx20m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/

技术分享图片

 

 

 技术分享图片

 

       运行,程序即可看到程序报错,并且在d盘下可以看到转储快照。

 

 7 jhat工具

用于分析jmap生成的堆转储快照信息。可以通过浏览器查看分析结果。

  • jhat 快照地址

技术分享图片

 

 

 通过浏览器访问结果技术分享图片

 

 

 

 技术分享图片

 8 jstack 工具

生成当前线程的快照。线程快照是当前虚拟机内一条线程正在执行的方法堆栈的集合。

jstack -l pid

技术分享图片

 

java_jvm工具

原文:https://www.cnblogs.com/S-Mustard/p/11518946.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!