中国领先的IT技术网站
|
|

Azul发布jHiccup 为Java提供运行时响应时间分析

jHiccup是Azul System公司最新发布的一款开源工具。其实开发该工具的目的是与应用程序底层运行平台相关的暂停和延迟做出度量。下面我们来看看实际的应用吧。

作者:openkk来源:OPEN资讯|2011-12-31 10:33

沙龙活动 | 去哪儿、陌陌、ThoughtWorks在自动化运维中的实践!10.28不见不散!


Azul System 公司于12月13日宣称发布了开源工具 jHiccup,设计该工具的目的是对与应用程序底层运行平台相关的暂停和延迟(或“hiccups”)做出度量。新工具的功能与 Azul 的 JitterMeter 有部分重叠,但它为创建图形化的输出增加了基于 Excel 的工具。另外它还计划增加基于 Java 用于生成图表的工具。此外,想要针对应用程序使用 jHiccup 也相当简单。你只需要在用来启动应用程序的 java -c命令之前增加 jHiccup 即可。

jHiccup 会捕获运行时的响应时间,对其记录日志,并通过“Hiccup 图”来显示。这个工具不会度量应用程序代码导致的延迟,而是会捕获由底层运行时平台所导致的外部延迟,那会对所有在当时运行的应用程序产生影响。用来达到 这种效果的技术非常简单: jHiccup 会向应用程序增加一个线程,它会休眠 1ms,然后唤醒,并查看距上次唤醒间隔了多长时间,如果超过 1ms,那么就会在内部记录日志。这样,你就拥有了最佳响应时间的基准。

其中的一些“Hiccup 图”会对你很有帮助。第一个图会显示出静默系统(quiet system)中的空闲应用(idle app)。图的顶部显示的是 jHiccup 系统所检测到的内容,并且会显示占整体运行的百分比。在下面,工具会提供更多详细的百分比样例,这是基于 10000 点的样例。如果系统(而不是应用程序)繁忙,那么我们就会看到延迟的数量上升,因为调度程序会占用大部分应用程序的时间。

下面的第二幅图显示的是真实的案例,来自于使用 CMS collector 运行在 Hotspot 的电信收费应用程序。通过与垃圾回收日志关联分析,我们可以知道在此显示的是主要和次要的垃圾回收事件。CMS 是一种分代的回收程序(generational collector),它会把对象隔离为新一代和旧一代,并优先收集新一代的对象。这个应用程序在电信收费程序中很典型,它对于新一代对象很难处理,因为 它需要跟踪大量只持续几秒钟就消失的会话。因此,大量新一代中的会话都会被回收。而更大的旧一代会话会造成暂停。

jHiccup 提供了一种很简单的方式,让你知道应该在什么地方进行优化,它会向你展示在应用程序本身有多少特定的性能问题,以及在其他地方——像 Java 虚拟机、操作系统、管理程序(如果用到的话)以及硬件——中有多少问题。你可以从 www.azulsystems.com/resources/Javatools 免费下载这个工具,它已经基于 Creative Commons license 开源。

原文链接:http://www.open-open.com/news/view/1b4ec6c

【编辑推荐】

  1. Java富客户端平台JavaFX:创建框架实战
  2. Java读取WEB应用中的资源
  3. Java中运用数组的四种排序方法
  4. Java实现实用的ZIP压缩与解压
  5. Java防止SQL注入的几个途径
【责任编辑:小林 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

C++编程你也行

本书是一本优秀的C++教材,内容包括:基础类型、操作符和简单变量,循环和决策,命名空间和C++标准库,用C++编写函数,行为、序列点和求值...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Python最火的编程语言