目录

  • 一、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性能分析相关推荐

  1. Linux性能优化实战学习笔记:第四十六讲=====实战分析

    Linux性能优化实战学习笔记:第四十六讲 一.上节回顾 不知不觉,我们已经学完了整个专栏的四大基础模块,即 CPU.内存.文件系统和磁盘 I/O.以及网络的性能分析和优化.相信你已经掌握了这些基础模 ...

  2. 如何分析java程序_如何利用 JConsole观察分析Java程序的运行,进行排错调优

    一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JCons ...

  3. 如何利用 JConsole观察分析Java程序的运行,进行排错调优

    原文链接:http://jiajun.iteye.com/blog/810150 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...

  4. 利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 Jtop

    利用jdk自带的运行监控工具JConsole观察分析Java程序的运行 原文链接 一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能 ...

  5. 如何利用 JConsole观察分析Java程序的运行,进行排错调优(转)

    一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JCons ...

  6. Java性能分析神器-JProfiler详解(一)

    前段时间在给公司项目做性能分析,从简单的分析Log(GC log, postgrep log, hibernate statitistic),到通过AOP搜集软件运行数据,再到PET测试,感觉时间花了 ...

  7. App性能分析数据监控

    App性能分析数据监控 APP的性能监控包括: CPU 占用率.内存使用情况.网络状况监控.启动时闪退.卡顿.FPS.使用时崩溃.耗电量监控.流量监控等等. 文中所有代码都已同步到github中,有兴 ...

  8. Yolov4性能分析(下)

    Yolov4性能分析(下) 六. 权重更新 "darknet/src/detector.c"–train_detector()函数中: ....../* 开始训练网络 */floa ...

  9. DevTools 实现原理与性能分析实战

    作者:vivo 互联网浏览器内核团队-Li Qingmei 一.引言 从 2008 年 Google 释放出第一版的 Chrome 后,整个 Web 开发领域仿佛被注入了一股新鲜血液,渐渐打破了 IE ...

最新文章

  1. 《智能路由器开发指南》——2.3 使用VirtualBox部署
  2. 机器学习(九)——EM算法
  3. JQuery链式操作简单的菜单列表
  4. 【LeetCode笔记】55. 跳跃游戏(Java、贪心法)
  5. 计算机网络讨论4,计算机网络实验四
  6. java正则 转义_java – 正则表达式和转义和未转义的分隔符
  7. mysql恢复测试报告_mysqldump+mysqlbinlog恢复测试
  8. 杭电5621 KK's Point
  9. [Java] 蓝桥杯BASIC-19 基础练习 完美的代价
  10. 【Luogu1631】序列合并(优先队列)
  11. python进不去怎么办_python写文件有时候写不进去怎么办
  12. 二维离散傅里叶变换 matlab
  13. 灵魂有香气的女子李筱懿|讲述女性自我成长的重要性
  14. java 微信支付 NATIVE + 生成二维码
  15. 零基础能不能学计算机专业,零基础能学计算机专业吗?
  16. JavaScript的通用库与动画特效
  17. diy 单片机 自动浇花_基于单片机的自动浇花系统
  18. 全国计算机等级考试监考培训,全国计算机等级考试 (NCRE) 监考培训
  19. QsciScintilla等编辑器实现不同区域鼠标右键处理方式不同的方法
  20. 怎么去搭建聚合支付系统比较划算

热门文章

  1. 计算机专业要求特质,计算机专业特点的六种解读.pdf
  2. Linux rm 删除指定文件
  3. VXLAN+EVPN控制平面和数据平面交互过程分析
  4. filter函数|python
  5. 解决关于android studio模拟器运行卡死问题
  6. 【HBase学习之四】HBase Client超时机制优化
  7. .gitignore文件用法及如何配置
  8. [python学习笔记]loc与iloc函数的用法及区别
  9. 宇宙飞船打外星人(python-2D游戏开发)
  10. android-async-http详解