写点什么

Azul 发布开源工具 jHiccup,为 Java 提供运行时响应时间分析

2011 年 12 月 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 开源。

查看英文原文: Azul Releases Open Source jHiccup Tool to Provide Response Time Analysis of the Java Run

2011 年 12 月 28 日 21:102587
用户头像

发布了 340 篇内容, 共 111.5 次阅读, 收获喜欢 2 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营 - 第三周课后练习

joshuamai

区块链追溯系统迎来新突破

CECBC区块链专委会

区块链 溯源 产品溯源

查漏补缺:166个最常用的Linux命令,哪些你还不知道?

小Q

Java Linux 程序员 操作系统 开发

LeetCode题解:231. 2的幂,位运算取二进制中最右边的1,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

【涂鸦物联网足迹】涂鸦云平台全景介绍

IoT云工坊

人工智能 云计算 大数据 物联网平台 物联网

GrowingIO 响应式编程探索和实践

GrowingIO技术专栏

响应式编程

第三周作业

丁乐洪

极客大学 - 架构师训练营 第七周作业

9527

week3 代码重构 -作业一

杨斌

【涂鸦物联网足迹】物联网主流通信方式

IoT云工坊

人工智能 云计算 大数据 物联网 云平台

穿越时空的回响:华为欧洲创新日的蝴蝶振翅

脑极体

区块链将颠覆和改变传统金融业底层逻辑

CECBC区块链专委会

区块链 数字经济

架构师训练营第 1 期 - 第七周总结

Todd-Lee

极客大学架构师训练营

架构师训练营第 1 期 - 第七周作业

Todd-Lee

极客大学架构师训练营

架构师训练营 第三周作业(手写单例模式)

springH₂O

架构训练营

WSL还是不错的

孙苏勇

WSL2 工具链 wsl

区块链usdt承兑商支付系统开发,usdt跑分系统搭建

WX13823153201

科学家联合提出基于区块链的追溯框架

CECBC区块链专委会

区块链 农业

三、设计模式

Geek_28b526

手把手教你如何在Windows安装Anaconda

计算机与AI

Python Anaconda

8张图带你分析Redis与MySQL数据一致性问题

Java架构师迁哥

架構師訓練營第 1 期 - 第 07 周總結

Panda

架構師訓練營第 1 期

架构师训练营 - 第 7 周课后作业(1 期)

阿甘

架构师训练营 - 第三周学习总结

joshuamai

在Idea中使用JUnit单元测试

jiangling500

单元测试 IDEA JUnit

Week 7 性能优化总结

黄立

week3 代码重构 学习总结

杨斌

https 握手失败问题排查全记录

lockdown56

nginx https 网络 HTTP 抓包

Week 7 作业一

黄立

一定要偷偷学,偷偷进步!腾讯内部首发Java多线程、高并发、设计模式“满级”笔记

Java架构追梦

Java 架构 面试 设计模式 多线程与高并发

目标检测之YOLOv2

Dreamer

NLP领域的2020年大事记及2021展望

NLP领域的2020年大事记及2021展望

Azul发布开源工具jHiccup,为Java提供运行时响应时间分析-InfoQ