JProfiler 6.0 支持动态插桩和历史锁视图

  • Srini Penchikala
  • 马国耀

2009 年 12 月 26 日

话题:JavaDevOps语言 & 开发

JProfiler最新版支持动态插桩,历史锁视图和个别方法运行分析。JProfiler 背后的公司ej-technologies最近发布了Java 应用分析工具 JProfiler V6.0 ,该工具还支持监控分析和线程转存(thread dump)视图。

动态插桩自动调节能够发现负载不相称的方法并在 JProfiler 的 GUI 中建议移除它们。被频繁调用的短运行的方法可能会歪曲整体数据,因为用于度量这些方法所用去的时间要远远大于它们本身的实际运行时间。新版本进行分析时在状态栏中提供了的这类热点通知,使得开发人员能够关注那些较长运行时间的方法。

个别方法运行分析特性帮助开发人员分析选定方法的最慢的执行细节。即一个方法中耗费了最长的时间的那些调用。通常,一个方法在进行大量调用时的行为是非常相似的,但有时花的时间却长得多。这种情况下检查访问树是没用的,因为绝大多数是正常的调用。现在,开发人员可以在访问树视图或方法统计图中将一个方法设定为特别方法,这样访问树将单独显示最慢的调用。

其他 JProfiler 6 的新功能包括:

锁视图:

JProfiler 中扩展了监控分析,增加了显示当前锁状态和所有记录的锁状态的图标。当前锁视图显示了当前等待或阻塞在某监控器上的所有线程以及那些持有竞争监控器的线程。死锁用红色节点标识并由小贴士显示了时间和栈跟踪。

在历史锁视图中,开发人员可以记录监控事件并通过记录的锁状态逐步导航。时间轴视图将事件的分布放在相关上下文中,从而提供了向其他监控事件的另一种导航方式。

线程转存视图:

新的线程转存视图显示了所有的访问帧,而不仅仅是分析类。开发人员可以在同一线程上遍历不同的线程转存以了解栈跟踪的变化。该特征支持多线程转存和单线程转存,并且现在整个线程转存可以拷贝到剪切板中。

监控分析:

由于可能有大量的监控事件,你可以把特定的线程或监控器标定为感兴趣节点。这样,一组独立的导航按钮将仅仅逐步跟踪那些至少有一个感兴趣节点的参与的事件。你可以通过选择时间轴的一段区域收集监控事件。为锁视图中的箭头展示的总体阻塞和等待时间以及栈跟踪列表在显示在工具的贴士窗口中。你可以通过 JProfiler MBean 或控制器(Controller)API 开启和关闭监控事件记录。

方法统计视图:

该视图展示了方法执行时间的分布统计数据,它包括一个称为“偏离系数”的特征用于显示最慢的调用偏离时间中位数的程度。在该视图的下方有一个展示调用时间分布的图。这里的 y 轴展示的是对数,这样能更清晰地显示单个偏离。

树地图视图:

对所有显示访问树的视图中加入了树地图视图模型,在树地图视图中的矩形区域与方法的执行时间成比例。你把鼠标移动到矩形区域上就可以看到方法信息并缩放到合适的大小以显示详细。访问跟踪器的栈跟踪信息也加了进来。每次栈跟踪的信息可以在下面的窗口中看到,这样使用者就能更方便地获得所选跟踪的上下文信息。

对于使用 Java SE v5或更高的 java 应用,该工具的配置仅需设置一个 VM 参数,即“-agentpath”。对于 Java 6 以上的 JVM,新版本在修改分析设置后不需要重新启动,而且新版本还能从 IDE 集成环境装载快照。支持的 IDE 包括Netbeans 6.8(同时支持Glassfish v3的分析)和IntelliJ Idea 9。该工具也可以与JBoss 5.1以及Oracle Weblogic 11g这样的应用服务器一起工作。

最新版还支持在两个新平台上的运行,他们是FreeBSD x86 和Linux PPC的 32 位以及 64 位 JVM 的操作系统。


查看英文原文: JProfiler 6.0 Supports Dynamic Instrumentation and Locking History Graphs

JavaDevOps语言 & 开发