六、JConsole性能分析
目录
- 一、JConsole简介
- 二、JConsole使用
- 1、命令行启动
- 2、GUI shell启动
- 三、监测死锁程序
- 1、死锁代码
- 2、分析死锁程序
- 3、检测图
- 4、线程检测
- 四、死锁问题分析
- 五、VusualVM分析工具
- 1、监视
- 2、死锁
一、JConsole简介
- 从Java 5开始 引入了 JConsole。JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。您可以轻松地使用 JConsole(或者,它更高端的 “近亲” VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码
二、JConsole使用
1、命令行启动
- 要求:需要配置好JDK的环境目录
- 然后在cmd命令行直接执行命令即可,如jps
2、GUI shell启动
- 找到JDK 安装路径,打开bin文件夹,双击jconsole
三、监测死锁程序
1、死锁代码
package com.sjyl.thread;class ThreadDemo02 implements Runnable {// 同时多个窗口共享100private volatile static int count = 100;// 存放方法区中private static Object oj = new Object();public boolean flag = true;public void run() {if (flag) {while (count > 0) {synchronized (oj) {try {Thread.sleep(10);} catch (Exception e) {// TODO: handle exception}sale();}}} else {while (count > 0) {sale();}}}public synchronized void sale() {synchronized (oj) {try {Thread.sleep(10);} catch (Exception e) {// TODO: handle exception}if (count > 0) {System.out.println(Thread.currentThread().getName() + ",出售" + (100 - count + 1) + "张票");count--;}}}
}public class Test0002 {public static void main(String[] args) throws InterruptedException {ThreadDemo02 threadDemo02 = new ThreadDemo02();Thread t1 = new Thread(threadDemo02, "窗口1");Thread t2 = new Thread(threadDemo02, "窗口2");t1.start();Thread.sleep(40);threadDemo02.flag = false;t2.start();}
}
2、分析死锁程序
- 运行死锁代码后,在JConsole中选择对应的Test000程序,连接 -> 不安全的连接(不需要使用SSL)
3、检测图
4、线程检测
四、死锁问题分析
- 在Test0002中我们有2个线程:窗口1,窗口2
- 在JConsole的线程窗口中,我们可以查看窗口1和窗口2这2个线程的信息
- 发现“已锁定”,并且提示了在java中的行数“com.sjyl.ThreadDemo02.run(Test0002.java:18)”
五、VusualVM分析工具
- 工具路径和JConsole一样的,都是在JDK的bin目录下
1、监视
2、死锁
六、JConsole性能分析相关推荐
- Linux性能优化实战学习笔记:第四十六讲=====实战分析
Linux性能优化实战学习笔记:第四十六讲 一.上节回顾 不知不觉,我们已经学完了整个专栏的四大基础模块,即 CPU.内存.文件系统和磁盘 I/O.以及网络的性能分析和优化.相信你已经掌握了这些基础模 ...
- 如何分析java程序_如何利用 JConsole观察分析Java程序的运行,进行排错调优
一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JCons ...
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
原文链接:http://jiajun.iteye.com/blog/810150 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...
- 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 Jtop
利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优(转)
一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JCons ...
- Java性能分析神器-JProfiler详解(一)
前段时间在给公司项目做性能分析,从简单的分析Log(GC log, postgrep log, hibernate statitistic),到通过AOP搜集软件运行数据,再到PET测试,感觉时间花了 ...
- App性能分析数据监控
App性能分析数据监控 APP的性能监控包括: CPU 占用率.内存使用情况.网络状况监控.启动时闪退.卡顿.FPS.使用时崩溃.耗电量监控.流量监控等等. 文中所有代码都已同步到github中,有兴 ...
- Yolov4性能分析(下)
Yolov4性能分析(下) 六. 权重更新 "darknet/src/detector.c"–train_detector()函数中: ....../* 开始训练网络 */floa ...
- DevTools 实现原理与性能分析实战
作者:vivo 互联网浏览器内核团队-Li Qingmei 一.引言 从 2008 年 Google 释放出第一版的 Chrome 后,整个 Web 开发领域仿佛被注入了一股新鲜血液,渐渐打破了 IE ...
最新文章
- 《智能路由器开发指南》——2.3 使用VirtualBox部署
- 机器学习(九)——EM算法
- JQuery链式操作简单的菜单列表
- 【LeetCode笔记】55. 跳跃游戏(Java、贪心法)
- 计算机网络讨论4,计算机网络实验四
- java正则 转义_java – 正则表达式和转义和未转义的分隔符
- mysql恢复测试报告_mysqldump+mysqlbinlog恢复测试
- 杭电5621 KK's Point
- [Java] 蓝桥杯BASIC-19 基础练习 完美的代价
- 【Luogu1631】序列合并(优先队列)
- python进不去怎么办_python写文件有时候写不进去怎么办
- 二维离散傅里叶变换 matlab
- 灵魂有香气的女子李筱懿|讲述女性自我成长的重要性
- java 微信支付 NATIVE + 生成二维码
- 零基础能不能学计算机专业,零基础能学计算机专业吗?
- JavaScript的通用库与动画特效
- diy 单片机 自动浇花_基于单片机的自动浇花系统
- 全国计算机等级考试监考培训,全国计算机等级考试 (NCRE) 监考培训
- QsciScintilla等编辑器实现不同区域鼠标右键处理方式不同的方法
- 怎么去搭建聚合支付系统比较划算