栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDK可视化命令

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/434363.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号