JDK可视化命令

jconsole

查看Java应用程序运行时情况,监视垃圾收集器的内存变化趋势,以及监视程序内的线程。在控制台输入jconsole即可启动JConsole客户端

 

JConsole客户端包括概览、内存、线程、类、VM概要、MBean这大块。

概览:主要运行数据的概览,包括堆内存,线程,类,CPU使用情况四项信息的变化趋势图

内存:可以监视堆内存以及其中各个区域(Eden区,Survivor区,老年代)的变化趋势,还可以监视非堆(元空间)的内存变化趋势,相当于命令行中的jstat

 

线程:可以查看当前程序有哪些线程在运行,单机可以查看线程的堆栈信息,相当于命令行工具的jstack,其左下角还有检测死锁的按钮。

 类:如图所示,显示了系统以及装载的类数量。在详细信息栏中,还显示了已卸载的类数量。

 

 

 

jvisualvm

jvisualvm用来解决Java代码产生的问题,下面用一个死锁的案列来进行说明

 Thread thread = new Thread() {
          @Override
          public void run() {
              synchronized (integer1){
                  System.out.println("lock1获取到integer1对象");
                  synchronized (integer2){
                      System.out.println("获取到integer2对象");
                  }
              }
          }
      };
      Thread thread1 = new Thread(){
          @Override
          public void run(){
              synchronized (integer2){
                  System.out.println("lock2获取到integer2对象");
                  synchronized (integer1){
                      System.out.println("获取到integer1对象");
                  }
              }
          }
      };
      thread.start();
      thread1.start();

 在控制台输入jvisualvm命令,选择我们的线程

 点击线程后,由图可知已经检测到了死锁问题

 再点击线程dump后就可以在该页面找到对应Java代码中出现的问题位置

 这样我们就可以快速的找到代码出现问题的地方,快速的解决debug

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值