Azul發布開源工具jHiccup,為Java提供運行時響應時間分析

openkk 12年前發布 | 12K 次閱讀 Java

        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 點的樣例。如果系統(而不是應用程序)繁忙,那么我們就會看到延遲的數量上升,因為調度程序會占用大部分應用程序的時間。

Azul發布開源工具jHiccup,為Java提供運行時響應時間分析

        下面的第二幅圖顯示的是真實的案例,來自于使用 CMS collector 運行在 Hotspot 的電信收費應用程序。通過與垃圾回收日志關聯分析,我們可以知道在此顯示的是主要和次要的垃圾回收事件。CMS 是一種分代的回收程序(generational collector),它會把對象隔離為新一代和舊一代,并優先收集新一代的對象。這個應用程序在電信收費程序中很典型,它對于新一代對象很難處理,因為 它需要跟蹤大量只持續幾秒鐘就消失的會話。因此,大量新一代中的會話都會被回收。而更大的舊一代會話會造成暫停。

Azul發布開源工具jHiccup,為Java提供運行時響應時間分析

        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

來自: InfoQ

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!