目录

一、图形化工具概述

二、JConsole是什么?

三、JConsole性能分析


一、图形化工具概述

使用上一章命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但它们存在下列局限:

  • 1.无法获取方法级别的分析数据,如方法间的调用关系、各方法的调用次数和调用时间等(这对定位应用性能瓶颈至关重要);
  • 2.要求用户登录到目标 Java 应用所在的宿主机上,使用起来不是很方便;
  • 3.分析数据通过终端输出,结果展示不够直观;

为此,JDK提供了一些内存泄漏的分析工具,如jconsole,jvisualvm等,用于辅助开发人员定位问题,但是这些工具很多时候并不足以满足快速定位的需求。

JDK自带的工具:

  • jconsole:JDK自带的可视化监控工具。查看Java应用程序的运行概况、监控堆信息、永久区(或元空间)使用情况、类加载情况等
  • Visual VM:Visual VM是一个工具,它提供了一个可视界面,用于查看Java虚拟机上运行的基于Java技术的应用程序的详细信息。
  • JMC:Java Mission Control,内置Java Flight Recorder。能够以极低的性能开销收集Java虚拟机的性能数据。

第三方工具:

  • MAT:MAT(Memory Analyzer Tool)是基于Eclipse的内存分析工具,是一个快速、功能丰富的Java heap分析工具,它可以帮助我们查找内存泄漏和减少内存消耗;
  • JProfiler:商业软件,需要付费,功能强大;

二、JConsole是什么?

从Java 5开始 引入了 JConsole,JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行。用于对JVM中内存、线程和类等的监控,是一个基于JMX(java management extensions)的GUI性能监控工具。

官方地址:Using JConsole - Java SE Monitoring and ManagementGuide

  • 如何启动JConsole?
  1. 如果是从命令行启动,使 JDK 在 PATH 上,运行 jconsole 即可。
  2. 如果从 GUI shell 启动,找到 JDK 安装路径,打开 bin 文件夹,双击 jconsole。
C:\Users\QDM>jconsole

如下图,会展示出当前所有的Java进程,类似jps的功能,想分析那个程序就双击哪一个进程:

三、JConsole性能分析

  • 概述:Displays overview information about the Java VM and monitored values;
  • 内存:显示内存使用信息;
  • 线程:显示线程使用信息;
  • 类:显示类装载信息;
  • VM摘要:显示java VM信息;
  • MBeans:显示 MBeans;

【a】概览:展示堆内存使用量、线程、类、CPU使用率

【b】内存:展示堆内存使用量,可以细分Eden、Survivor、metaspace等进行查看

可以查看堆内存,非堆内存,内存池的状况总体内存的分配和使用情况以及不同的GC进行垃圾回收的次数和时间,而且可以手动进行GC查看内存变化。

 【c】线程:展示线程相关的信息,也可以检查死锁 

左下角显示所有的活动线程(如果线程过多,可以在下面的过滤栏中输入字符串过滤出你想要观察的线程)。点击某个显示会显示这个线程的名称、状态、阻塞和等待的次数、堆栈的信息。

统计图显示的是线程数目的峰值(红色)和当前活动的线程(蓝色)。

检测死锁示例:

如上图,jconsole显示检测到一个死锁,也就是Thread-A和Thread-B都在等各自的锁产生的死锁。

【d】类:展示类加载数量等信息 

【e】VM概要:展示VM概要,如JVM相关参数、堆大小、垃圾收集器等信息

JVM监控及诊断工具GUI篇之JConsole相关推荐

  1. 性能监控与调优篇之【3. JVM 监控及诊断工具-GUI 篇】

    文章目录 3. JVM 监控及诊断工具-GUI 篇 3.1. 工具概述 3.2. JConsole 3.3. Visual VM 3.4. Eclipse MAT 3.5. JProfiler 3.6 ...

  2. JVM监控及诊断工具-GUI篇

    3.JVM监控及诊断工具-GUI篇 一.工具概述 使用上一章命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但它们存在下列局限: 1.无法获取方法级别的分析数据,如方法间的调用关系.各方 ...

  3. 20.JVM监控以及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 20. JVM监控及诊断工具-GUI篇 20.1. 工具概述 使用上一章命令行工具或组合能帮您获取目标Java应用性能相 ...

  4. 干货满满【JVM监控及诊断工具-GUI篇】

    [JVM监控及诊断工具-GUI篇] 3.1. 工具概述 使用上一章命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但它们存在下列局限: 1.无法获取方法级别的分析数据,如方法间的调用关系 ...

  5. JVM 学习笔记二十六、JVM监控及诊断工具-GUI篇

    二十六.JVM监控及诊断工具-GUI篇 1.工具概述 使用上一张命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但他们存在下列局限: (1)无法获取方法级别的分析数据,如方法间的调用关系 ...

  6. 第24章 JVM监控及诊断工具-GUI篇

    第24章 JVM监控及诊断工具-GUI篇 来自尚硅谷宋红康老师讲解的JVM:bilibili链接 1 工具概述 使用上一张命令行工具或组合能帮您获取目标Java应用性能相关的基础信息,但他们存在下列局 ...

  7. 15、JVM监控及诊断工具-GUI篇

    文章目录 第1章.工具概述 第2章.jConsole 1.基本概述 2.启动 3.三种连接方式 [1]Local [2]Remote [3]Advanced 4.主要作用 第3章.Visual VM ...

  8. JVM(二十二) -- 性能监控与调优(三) -- JVM监控及诊断工具--GUI篇

    1.工具概述 1.1 图形化总和诊断工具: JDK自带的工具 第三方工具 2. jConsole(了解) 从java5开始,在JDK中自带的java监控和管理控制台. 用于对JVM中内存.线程和类等的 ...

  9. <JVM下篇:性能监控与调优篇>03-JVM监控及诊断工具-GUI篇

    笔记来源:尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) 同步更新:https://gitee.com/vectorx/NOTE_JVM https://codechina.cs ...

  10. Day357358359360.JVM监控及诊断工具-GUI -JVM

    JVM监控及诊断工具-GUI 实际中,你下面有1-2款会用即可 一.工具概述 二.JConsole 了解 1.基本概述 2.启动 在jdk安装目录中找到jconsole.exe,双击该可执行文件就可以 ...

最新文章

  1. Android 防止快速点击
  2. VS2005 自动生成属性(转)
  3. Linux系统安装python3和创建python3虚拟环境
  4. CentOS 7 安装方式汇总
  5. 休眠事实:有利于双向集vs列表
  6. vue项目实践教程1:vux项目搭建和简介
  7. linux用户登录失败,锁定用户
  8. linux磁盘空间用满的处理方法
  9. POJ1270 Following Orders(拓扑排序+回溯)
  10. 谷歌chrome浏览器安装json插件
  11. android安卓使用socketIO实现聊天室功能
  12. RestAssured接口自动化框架学习
  13. CF407C Curious Array
  14. android 滑动取值_Android中滑屏实现
  15. springboot+vue基本微信小程序的疫情防控平台系统 计算机毕业设计
  16. word2016论文不同章节设置页眉页码方法
  17. Reference 、ReferenceQueue 详解
  18. (11)EKF - (3) EKF3匹配度和Lane切换
  19. Python量化学习笔记02——量化投资——以Python为工具 Part01-C02
  20. 【蓝桥】做题笔记及心得总结(基础篇)

热门文章

  1. 推荐方法-1:UserCFItemCF
  2. 自动驾驶 5-1 比例积分微分 (PID) 控制Lesson 1: Proportional-Integral-Derivative (PID) Control
  3. XLNet 和BERT的区别是什么?
  4. 559. N叉树的最大深度
  5. 449.序列化和反序列化二叉搜索树
  6. 2020 Kyligence 面经
  7. 前端为什么有的接口明明是成功回调却执行了.catch失败回调_前端战五渣学JavaScript——Promise...
  8. Axure实操笔记之axure炫酷的作者信息设置
  9. 多个文件进行合并取前10个数(多线程方式)
  10. aesmiyao php_PHP实现的AES 128位加密算法示例