JVM监控及诊断可视化工具——JConsole

阅读: 评论:0

JVM监控及诊断可视化工具——JConsole

JVM监控及诊断可视化工具——JConsole

  • jconsole是Java 5 开始,在JDK中自带的java监控和管理控制平台。
  • 用于堆JVM中内存、线程和类等的监控,是一个基于JMX的GUI性能监控工具。

如何启动jconsole?
方法1:找到jdk安装目录的bin文件夹,双击jconsole

方法2:win+r 输入cmd,打开dos窗口,直接输入jconsole

我们看到有两种链接方式:本地连接和远程连接。

  • 本地连接

测试代码:


/*** -Xms600m -Xmx600m -XX:SurvivorRatio=8*/
public class HeapInstanceTest {byte[] buffer = new byte[new Random().nextInt(1024 * 100)];public static void main(String[] args) {try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}ArrayList<HeapInstanceTest> list = new ArrayList<HeapInstanceTest>();while (true) {list.add(new HeapInstanceTest());try {Thread.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}}}
}

修改JVM的参数,设置堆内存大小为600m,eden和s0区、s1区比例为8:1:1







其他的我就不举例了,可以自己点点找找自己想要的信息。

  • Jconsole检测死锁
/*** 演示线程的死锁问题**/
public class ThreadDeadLock {public static void main(String[] args) {StringBuilder s1 = new StringBuilder();StringBuilder s2 = new StringBuilder();new Thread(){@Overridepublic void run() {synchronized (s1){s1.append("a");s2.append("1");try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}synchronized (s2){s1.append("b");s2.append("2");System.out.println(s1);System.out.println(s2);}}}}.start();new Thread(new Runnable() {@Overridepublic void run() {synchronized (s2){s1.append("c");s2.append("3");try {Thread.sleep(100);} catch (InterruptedException e) {e.printStackTrace();}synchronized (s1){s1.append("d");s2.append("4");System.out.println(s1);System.out.println(s2);}}}}).start();}
}


远程连接:

jconsole作为一个了解即可,用起来也不费劲,jvm性能监控更推荐JVisualVM

本文发布于:2024-01-31 03:44:06,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170664385125144.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:工具   JVM   JConsole
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23