JVM常用工具总结

jps(查看JVM进程基本信息)

1.jps 查看所有jvm进程(显示进程id和执行的java入口类)

2.jps -m 查看jsp数据+main方法参数

3.jps -v 查看jvm启动参数(堆大小,使用编码等)

jstat(监视虚拟机各种运行状态信息)

jstat -<option> [-t](jvm运行时间) [-h<lines>](多少行重新打印头) <vmid> [<interval>(打印间隔时间) [<count>(打印次数)]]

1.jstat -class vmid(jvm进程id) 查看对应JVM进程类加载详细信息

2.jstat -gc -h10 vmid 1000 10 查看gc信息每10行打印头部信息,1000ms打印一次,一共打印10次

image.png

jinfo(查看jvm相关信息和系统属性信息)

1.jinfo vmid 查看jvm flag信息和系统属性信息

2.jinfo -flags vmid 查看jvm flag信息

3.jinfo -sysprops vmid 查看系统属性信息

jmap & jhat (生成dump文件和分析dump文件)

1.jmap -dump:format=b,file=path vmid 导出dump文件(oom自动导出dump文件 -XX:+HeapDumpOnOutOfMemoryError dump文件目录 -XX:HeapDumpPath=d:)

2.jhat path 使用日志文件,启动7000端口,可以浏览dump信息

image.png

image.png

image.png
histogram可以查看内存占用/对象数量 的分布图

jstack(监控线程状态)

jstack vmid 查看进程的线程状态

private static void test5() throws Exception{

    //睡眠状态
    new Thread(()->{
        try {
            Thread.sleep(10000000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    },"睡眠线程1").start();

    //死锁
    Object o=new Object();
    Object o1=new Object();
    new Thread(()->{

        synchronized (o){
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("死锁线程1 获得 o锁");

            synchronized (o1){
                System.out.println("死锁线程1 获得 o1锁");
            }
        }
    },"死锁线程1").start();

    new Thread(()->{

        synchronized (o1){
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("死锁线程2 获得 o1锁");

            synchronized (o){
                System.out.println("死锁线程2 获得 o锁");
            }
        }
    },"死锁线程2").start();

    System.out.println("线程执行完毕");
}

image.png

可以查看线程的状态,比如死锁,睡眠等

javap(反编译)

image.png

image.png

反编译为字节码,可以看到常量池,锁相关语义

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值