没有合适的资源?快使用搜索试试~ 我知道了~
Java SE 6 中监视和诊断性能问题1
需积分: 0 0 下载量 16 浏览量
2022-08-08
20:30:59
上传
评论
收藏 1.37MB DOCX 举报
温馨提示
试读
15页
更多背景信息,请参阅参考资料。监视和管理 APIJava SE 5 中引入的 java.lang.management 包定义了 9 个 MBean,称为平台
资源详情
资源评论
资源推荐
Java SE 6 对性能进行了深入研究,使用增强的工具管理和监视应用程序并且诊断常见问题。这些改进包
括:
� 监视和管理 API 增强
� 正式支持增强的图形监视工具 JConsole
� 提供增强的 Java 虚拟机(JVM)测试工具
本文介绍了 Java SE 平台的监视和管理基本知识,并详细介绍了最新版本中的性能监视和管理增强。还介
绍了 Java SE 6 平台提供的诊断和故障排除工具。
要从本文获益,您应当非常熟悉较早 Java SE 版本中引入的监视和管理功能。更多背景信息,请参阅 参
考资料。
监视和管理 API
Java SE 5 中引入的 java.lang.management 包定义了 9 个 MBean,称为
平台
MBean 或
MXBean(请参阅 参考资料)。每个 MXBean 封装了 JVM 的一个单独的功能区。从 Java SE 5 开始,
JVM 包含了一个内置的 MBean 服务器,称为
平台
MBean
服务器
。MBeans 位于其中并由其管理。表 1
列出了 Java 平台中的 9 个 MXBeans:
表 1. 平台 MBean
管理接口
托管的资源
ClassLoadingMXBean
类装载器
CompilationMXBean
编译器
MemoryMXBean
内存
ThreadMXBean
线程
RuntimeMXBean
运行时
OperatingSystemMXBean
操作系统
GarbageCollectorMXBean
垃圾收集器
MemoryManagerMXBean
内存管理器
MemoryPoolMXBean
内存池
任何应用程序都可获得并使用 JVM 提供的平台 MBean,方法是获得目标 bean 的实例并调用合适的方法。
MXBean 可用来监视本地和远程 JVM 的行为并获得相关信息。
平台 MBean 可提供对信息的访问,例如装载的类的数量、JVM 正常运行时间、内存消耗量、正在运行的
线程的数量,以及线程竞争统计信息。
您可以使用以下两种方式之一监视和管理 JVM 资源:
� 直接访问 MXBean 接口
� 使用 MBeanServer 接口进行间接访问
使用 MXBean 接口直接访问
您可以从一个静态工厂方法获得一个 MXBean 实例,该方法可以使您直接访问本地运行的 JVM 的
MXBean 接口。ManagementFactory 类提供静态工厂方法获得 MXBean。清单 1 演示了如
何使用该工厂获得 RuntimeMXBean 并获得其中一个标准属性 VmVendor 的值:
清单 1. 直接访问 MXBean
RuntimeMXBean mxbean = ManagementFactory.getRuntimeMXBean();
// Get the standard attribute "VmVendor"
String vendor = mxbean.getVmVendor();
使用 MBeanServer 接口进行间接访问
平台 MBeanServer 接口使用 MXBeanServerConnection,使您能够连接到远程 JVM
并访问运行在这些平台上的 MXBean。您可以使用 ManagementFactory 类的
getPlatformMBeanServer 方法访问平台 MBean 服务器。清单 2 演示了如何获得运行在
远程 JVM 上的 RuntimeMXBean 并获得 VmVendor 属性的值:
清单 2. 间接访问 MXBean
MBeanServerConnection serverConn;
try {
//connect to a remote VM using JMX RMI
JMXServiceURL url = new JMXServiceURL( "service:jmx:rmi:///jndi/rmi://<addr>");
JMXConnector jmxConnector = JMXConnectorFactory.connect(url);
serverConn = jmxConnector.getMBeanServerConnection();
ObjectName objName = new
ObjectName(ManagementFactory.RUNTIME_MXBEAN_NAME);
// Get standard attribute "VmVendor"
String vendor =
(String) serverConn.getAttribute(objName, "VmVendor");
} catch (...) { }
有关 MXBeans 和 java.lang.management API 的更详细信息,请参阅 参考资料 。
Java SE 6 中的 API 增强
Java SE 5 引入了 java.util.concurrent.locks 包,它为锁定和等待条件提供了一种框
架。这种框架有别于 Java 的内置同步支持并允许更加灵活地使用锁。
Java SE 6 为 java.lang.management 包的 java.util.concurrent.locks
添加了支持。这包括可提供锁信息的新类以及对 ThreadInfo、ThreadMXBean 和
OperatingSystemMXBean 接口的增强。
Java SE 6 引入了两个新类:
� LockInfo 包含有关锁的信息。
� MonitorInfo 扩展了 LockInfo 并包含有关对象监视锁的信息。
ThreadInfo 类利用了这些新的对象以及引入的三种新方法:
� getLockInfo() 返回 LockInfo 对象,给定线程将被阻塞以等待该对象。
� getLockedMonitors() 返回当前被给定线程锁定的 MonitorInfo 对象。
� getLockedSynchronizers() 返回 LockInfo 对象,提供当前由给定线程锁定
的可拥有的同步程序。
在 Java SE 5 中,ThreadMXBean.getThreadInfo 方法只报告线程正在等待获取的对象监
视器或是被阻塞的监视器。Java SE 6 对这些方法进行了增强,从而可以报告线程正在等待获取的
AbstractOwnableSynchronizer。
4 个新的方法被添加到 ThreadMXBean 接口中:
� isObjectMonitorUsageSupported() 将测试虚拟机是否支持对对象监视器的
使用情况进行监视。
� isSynchronizerUsageSupported() 测试虚拟机是否对可拥有的同步程序使
用情况进行监视。
� findDeadlockedThreads() 返回处于死锁状态的线程的 ID 数组。死锁线程被阻塞,
防止进入对象监视器或同步程序。
� dumpAllThreads() 为所有活动线程返回堆栈跟踪和同步信息。
最后,OperatingSystemMXBean 接口将进行更新,以包括
getSystemLoadAverage() 方法,它可以返回前一分钟的系统负载平均值。
除了提供编程支持以外,Java SE 6 还包括了一些诊断和故障排除工具,可用来检测问题并监视 JVM 资
源使用情况。接下来两节将介绍并演示其中几个可用的诊断工具。
回页首
Java 监视和管理控制台(JConsole)
Java SE 6 提供了对 JConsole 的正式支持,这是 Java 5 SE 中引入的监视和管理控制台。JConsole 使
您能够在运行时监视各种 JVM 资源统计信息。这种特性特别适用于检测死锁、锁竞争、内存泄漏和循环
线程。它可以连接到一个本地或远程 JVM 并可用来进行监视:
� 线程状态(包括相关的锁)
� 内存使用情况
剩余14页未读,继续阅读
查理捡钢镚
- 粉丝: 18
- 资源: 317
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- rdf0412-kcu116-pcie-c-2019-1.zip(XILINX KCU116 源码)
- 基于C#语言的winform界面火车票订票系统(源码+实验报告)
- 【华为OD部分真题及讲解】华为OD部分真题及讲解
- 基于Python+Django的京东商品比价系统源码+全部资料(毕业设计).zip
- G460 G560 Z460 Z560的最新BIOS 2.18版(无白名单)
- MetaJUI v0.4
- 基于Python+Django的京东商品比价系统源码+全部资料(毕业设计).zip
- linux常用命令大全
- 立体相机标定-使用OpenCV+Cpp对立体相机进行标定-calibration-附项目源码+流程教程-优质项目实战.zip
- 基于SpringBoot+Mysql开发的酒店管理系统
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0