JConsole工具是JDK自带的图形化性能监控工具。 通过JConsole工具, 可以查看Java应用程序的运行概况, 并监控堆信息、 永久区使用情况及类的加载情况等。

本文主要介绍JConsole工具的基本使用方法。

一,JConsole连接Java程序

JConsole程序在%JAVA_HOME%/bin目录下,启动后,程序便要求指定连接Java应用程序,如图6.25所示。

在“新建连接”对话框中罗列了所有的本地Java应用程序,选择需要连接的程序即可。在“远程进程”部分还有一个用于连接远程进程的文本框,输入正确的远程进程地址即可连接。

如果需要使用JConsole连接远程进程,则需要在远程Java应用程序启动时加上如下参数:

-Djava.rmi.server.hostname用于指定运行Java应用程序的计算机IP地址,-Dcom.sun.management.jmxremote.port用于指定通过JMX管理该进程的端口号。基于以上配置启动的Java应用程序通过JConsole在远程连接时,只需要输入如下远程进程即可。

二,Java程序概况

在连接上Java应用程序后便可以查看应用程序的概况,如图6.26所示。图中4张折线图分别显示了堆内存的使用情况、系统的线程数量、加载类的数量及CPU的使用率。

三,内存监控

切换到“内存”选项卡,JConsole可以显示当前内存的详细信息。这里不仅包括堆内存的整体信息,更细化到了eden区、survivior区及老年代的使用情况,同时也包括非堆区,即永久代的使用情况。单击右上角的“执行GC”按钮,可以强制应用程序进行一次FullGC操作,如图6.27所示。

注意:在JConsole中,可以查看堆的详细信息,包括堆的大小、使用率、eden区大小、survivor区大小及永久区大小等。

四,线程监控

JConsole中的“线程”选项卡允许开发人员监控程序内的线程,如图6.28所示。JConsole显示了系统内的线程数量,并在屏幕下方显示了程序中所有的线程。单击线程名称,便可以查看线程的栈信息。

单击“检测到死锁”按钮,还可以自动检测多线程应用程序的死锁情况。图6.29展示了由JConsole检测到的死锁线程。

本例中,应用程序的代码可以参考6.3.6节jstack命令中的示例。

注意:使用JConsole可以方便地查看系统内的线程信息,并且可以快速地定位死锁问题。

五,类加载情况

JConsole的“类”选项卡如图6.30所示,显示了系统已经装载的类数量,在“详细信息”栏中,还显示了已卸载的类数量。

六,虚拟机信息

在“VM摘要”选项卡中,JConsole显示了当前应用程序的运行环境,包括虚拟机类型、版本、堆信息及虚拟机参数等,如图6.31所示。

注意:VM摘要显示了当前Java应用程序的基本信息,如虚拟机类型、虚拟机版本、系统的线程信息、操作系统的内存信息、堆信息、垃圾回收器的类型、JVM参数及类路径等。

七,MBean管理

MBean选项卡允许通过JConsole进行MBean管理,包括查看或者设置MBean的属性,以及运行MBean的方法等。如图6.32所示为MBean的管理界面,这里选中了Memory的Verbose属性。通过修改Verbose的属性值,可以在程序运行时动态打开或者关闭GC操作的输出信息。

MBean的种类繁多,功能也比较强大,本节将列举几个常用的MBean操作,如表6.2所示。

注意:通过JConsole,可以对Java应用程序中的Mbean进行统一管理。

八,使用插件

除了基本功能外,JConsole还支持插件扩展。在JDK的安装目录下就有一个自带的JConsole插件,它位于%JAVA_HOME%\demo\management\JTop下。使用以下命令可以让JConsole加载插件并启动:

JConsole启动后,连接到任意Java应用程序,便可以进入JTop页面,如图6.33所示。

JTop插件按照CPU占用时间进行排序,将占用CPU时间最长的线程显示在表格顶端。通过这个插件,开发人员便能迅速地找到占用CPU时间最长的线程名称,并通过线程快照定位线程代码。

JTop插件的完整源代码都可以在JDK的安装目录下找到,有兴趣的读者可以修改JTop的源码,让它显示更多的线程信息。

本文给大家讲解的内容是Java性能调优六大工具:JConsole工具

  1. 下篇文章给大家讲解的内容是Java性能调优六大工具:VisualVM多合一工具
  2. 觉得文章不错的朋友可以转发此文关注小编;
  3. 感谢大家的支持!

完全体,千字详解:“Java性能调优六大工具”之JConsole工具相关推荐

  1. 千字详解:“Java性能调优六大工具”之JConsole工具

    JConsole工具是JDK自带的图形化性能监控工具. 通过JConsole工具, 可以查看Java应用程序的运行概况, 并监控堆信息. 永久区使用情况及类的加载情况等. 本文主要介绍JConsole ...

  2. 发布即巅峰:Java性能调优六大工具:MAT内存分析工具

    MAT内存分析工具 MAT是MemoryAnalyzerTool的简称,它是一款功能强大的Java堆内存分析器,可以用于查找内存泄漏以及查看内存消耗情况.MAT是 基于Eclipse开发的一款免费的性 ...

  3. 一步步带你详解JVM性能调优

    性能调优 性能调优包含多个层次,比如:架构调优.代码调优.JVM调优.数据库调优.操作系统调优等. 架构调优和代码调优是JVM调优的基础,其中架构调优是对系统影响最大的. 性能调优基本上按照以下步骤进 ...

  4. linux性能调优干货,【干货分享】详解Linux性能调优之tuned特性

    tuned简介 对普通用户而言,Linux应用环境优化是比较困难的.领域多,范围广:CPU.存储.缓存策略.内存管理等涉及的参数.Linux内部虽然有默认设置值,可以应对大多数的情况场景,但是针对一些 ...

  5. Java性能调优工具:MAT内存分析工具,上万字带你彻底了解

    MAT内存分析工具 MAT是MemoryAnalyzerTool的简称,它是一款功能强大的Java堆内存分析器,可以用于查找内存泄漏以及查看内存消耗情况.MAT是 基于Eclipse开发的一款免费的性 ...

  6. Java 性能调优 概念详解 小白教程

    对于很多研发人员来说,Java 性能调优都是很头疼的问题,为什么这么说?如今,一个简单的系统就囊括了应用程序.数据库.容器.操作系统.网络等技术,线上一旦出现性能问题,就可能要你协调多方面组件去进行优 ...

  7. java性能调优实战学习笔记

    这是极客时间专栏<java性能调优实战>的部分学习笔记,个人感觉这个专栏内容不深,适合初学者,我只看了编程性能调优和数据库性能调优两块,其他的暂时不打算看了,后续有时间再看吧 有任何问题可 ...

  8. Java性能调优、LinkedIn容器部署、阿里移动性能调优——首届APMCon精彩演讲先睹为快...

    APMCon2016,在盛夏的8月等你. \\ 作为第一届APM垂直领域的技术大会,我们能拿出什么呈现给参会者? \\ 答案是,除了会场可以纳凉避暑之外,还有来自国内外顶级技术大拿带来的Java性能管 ...

  9. GitHub疯狂转发!阿里巴巴彩版java性能调优实战,终于到手了!文末福利

    怎样才能做好性能调优? 开始之前,我先来讲一下我对性能调优的看法.在我看来Java的性能调优并不是像学习编程语言一样可以通过学习掌握,它是没有办法用直线的思维学会并掌握使用的,并且它对于程序员来说,对 ...

  10. 《Java性能调优实战》笔记(一)Java编程性能调优、多线程性能优化

    文章目录 一.Java性能调优概述 1.1 性能调优标准 1.2 制定性能调优策略 二.Java编程性能调优 2.1 字符串 2.2 正则表达式 2.3 ArrayList和LinkedList的选择 ...

最新文章

  1. java 导出pdf_一次java导出pdf的经历
  2. JVM 调优实战--常见的垃圾回收算法及垃圾收集器组合
  3. Linux watch命令详解
  4. 多模光纤收发器购买时需要注意什么问题?
  5. mysql1130_解决远程连接mysql错误1130的方法
  6. Iphone代码创建视图
  7. Folder and jar
  8. (2)Mac安装Parallels无法上网
  9. QT实现年会抽奖小软件的实现
  10. 201671030109 词频统计软件项目报告
  11. Mysql导入Hive并查询全程记录
  12. Android图片加载框架最全解析(一),Glide的基本用法
  13. nn.module 看图搭建网络
  14. 智能化工厂数字化管理系统软件解决方案
  15. 【CityHunter】服务器端设计思路
  16. matlab学霸表白公式,一个理科学霸的表白:数学公式的超酷表
  17. 未分配利润与利润表不一致_资产负债表中的未分配利润和利润表中的净利润肯定是一致的吗?...
  18. UVA11540 Sultan's Chandelier
  19. linux运维工程师2017,2017年Linux运维工程师经典面试题汇总
  20. 59.Mongoose

热门文章

  1. 2021年中国道路交通事故情况分析(附机动车保有量、交通事故发生数量、死亡人数、受伤人数、直接经济损失)[图]
  2. 基于单片机的电子万年历的设计
  3. 必备!Mac上的硬盘测速专家Blackmagic Disk Speed Test
  4. 蓝牙协议分析工具Wireshark/Frontline/Ellisys的使用
  5. 某知名大学学生毕业设计, Java学好了就是厉害
  6. nmos和pmos导通条件
  7. java+动态修改prooper_Spring Aop 权限开发(Java后台管理权限) (完整版)
  8. ERP生产线管理系统 with WAMP
  9. 2020年中国养老地产行业市场现状分析,提高养老地产运营水平是关键「图」
  10. 网工常用网络命令合集✨(建议收藏)