Java性能调优工具“JRMC”的介绍

Java性能调优工具“JRMC”的介绍,第1张

Java性能调优工具“JRMC”的介绍,第2张

【编者按】
Java虚拟机(JVM)和垃圾收集器(GC)负责管理大部分内存任务,但在Java应用系统中仍然可能发生内存泄漏。事实上,OOM等现象也是大型项目中的常见问题。避免内存泄漏的第一步是弄清楚它是如何发生的,然后对症下药。

[Text]

Java虚拟机(JVM)和垃圾收集器(GC)负责管理大部分内存任务,但在Java应用系统中仍然可能发生内存泄漏。事实上,OOM等现象也是大型项目中的常见问题。避免内存泄漏的第一步是弄清楚它是如何发生的,然后对症下药。

究竟是什么原因导致了Java程序的内存泄漏?Java虚拟机的垃圾收集器不是应该管理未使用的内存吗?是的,它可以管理,但是垃圾回收的对象只能是那些不再被引用的对象。然而,一些不再需要的对象仍然在系统中的某个地方引用它们,因此它们不能被垃圾收集。日志中大量String对象的生成以及编写Java代码时一些常见的内存泄漏陷阱都会造成内存泄漏,但是在开发阶段要找出造成泄漏的代码是非常困难的。

在大型企业系统中,Java代码中的内存泄漏是一个常见且难以解决的问题。这些泄漏问题通常是在最不愿意发生的正式生产环境中发现的,在开发和测试环境中很难重现。这是为什么呢?生产环境中的系统需要处理更多的数据,可能需要很长时间才能发现Java堆增长缓慢。最终,系统内存将会耗尽。

因此,本文介绍了一种新的工具BEA JRockit Mission Control,用于诊断漏洞并指出根本原因。这个工具的开销非常小,所以可以在生产环境中使用它来查找系统的内存泄漏。

简介

BEA JRockit Mission Control(以下简称JRMC)于2005年12月问世,该工具套件从JRockit R26.0.0开始捆绑,目前最新版本为2.0.1。它是一套工具,用于监控、管理和分析生产环境中的应用程序,开销非常低。它包括三个独立的应用程序:内存泄漏检测器、JVM运行时分析器和管理控制台。

JRockit管理控制台

JRockit管理控制台是一个基于JMX的控制台,用于监视和管理多个JRockit实例,提供重要的状态数据并控制JRockit JVM的运行时特征。它捕获并显示关于垃圾收集器(GC)暂停、内存、堆使用和CPU负载的实时数据,以及JVM中部署的MBean服务器上注册的所有JMX MBean公开的信息。JVM管理包括对CPU相似性、垃圾收集策略和内存池大小的动态控制,以及低成本的方法分析器和异常计数器。

JRockit运行时分析器

JRockit Runtime Analyzer(JRA)是一个JVM分析器,也是一个按需“动态记录器”Java应用程序,它记录了预定时间段内Java应用程序和JVM的详细记录。然后JRA应用程序离线分析记录的文件。记录的数据包括方法的调用跟踪、错误同步、锁分析、垃圾收集统计、优化决策、对象统计和其他重要的应用程序/JVM行为。其目的是使JRockit开发人员能够找到一种基于现实应用优化JVM的好方法,对于帮助客户解决生产和开发环境中的问题非常有用。

JRA由两部分组成:JVM中的记录引擎和可用于分析结果记录的GUI应用程序。日志引擎使用几个信息源,包括JRockit热点检测器(优化引擎也使用它来决定应该优化哪些方法)、操作系统、JRockit内存系统(最著名的垃圾收集器)和JRockit锁分析器(如果支持)。

JRockit内存泄漏检测器

尽管Java的自动内存管理机制将开发人员从显式分配和释放已用内存的负担中解放出来,但如果程序继续引用不再有用的对象,内存泄漏仍然可能发生。JRockit内存泄漏检测器工具用于发现和查找内存泄漏的原因。趋势分析器为用户提供了一个趋势分析,它可以发现非常缓慢的泄漏,显示详细的堆统计信息(包括指向泄漏对象和分配位置的引用类型和实例),解释应用程序中每个类使用了多少空堆,并显示特定类型的实例使用了多少空堆,它们占用了堆的哪一部分,存在多少个实例,以及heap/每秒。使用先进的图形显示技术,使查找和理解有时很复杂的信息变得更容易。

JRockit内存泄漏检测器还提供了一种快速找出泄漏原因的方法。您可以在趋势分析表中选择一个可疑类型,所有类型及其指向所选类型的实例都可以显示在图形中。图形节点可以随意展开,用户可以追溯到引用的最终原因。类,并且指向选定实例的所有实例都可以显示在实例图中。您可以跟踪一个课的所有分配。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » Java性能调优工具“JRMC”的介绍

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情