Perf4j簡介

          Perf4j主要的用途是計量代碼性能和分析性能數據。

           

          為什么要使用這個工具呢?我們可以聯想下最早期java開發者調試代碼使用的方式,以前沒有日志框架,那java開發就使用System.out.println()來輸出自己想查看的變量。但是這樣項目上線的話,就要去掉這些打印語句以減少性能影響。那萬一在線上出問題了,調試哪里出問題就很麻煩,因為沒有輸出的日志可查。所以后來有人開發了日志框架,通過日志級別控制日志的輸出。

           

          類似的,如果沒有perf4j,我們在查看代碼運行時間的話可以用以下代碼來實現:

          long start = System.currentTimeMillis();

          // execute the block of code to be timed

          System.out.println("ms for block n was: " + (System.currentTimeMillis() - start));

          這種方式有幾個缺點:

          1、 這種方式輸出內容比較單一,就是代碼總的運行時間。但是我們代碼需要查看的性能指標有更多,比如總的平均值,最小值,最大值,tps等等。

          2、 也許我們的代碼在線上運行,我們想把這些值通過圖表的形式展示出來。或者把這些內容通過jmx輸出。

          3、 另外,我們可能把perf4jlog4jslf4j等日志框架和日志門面系統整合起來。

           

          基于以上這些問題,所以開源社區就出現了perf4j(人多力量大,社區的力量就是強大)。

          Perf4j一些特性:

          簡單的停止查看機制來計算語句時間消耗輸出。

          命令行解析log文件產生匯總數據和圖表。

          簡單的集成日志框架和門面框架。

          自定義log4jlogbackappenders來產生數據和圖表。

          通過jmx查看性能指標,并根據閾值發送消息。

          Web工程可以通過servlet來輸出性能指標。

          Perf4j可以和aop等切面框架整合起來輸出性能指標。

          Perf4j是一個可擴展的架構。

          posted on 2012-04-15 10:15 yangpingyu 閱讀(763) 評論(0)  編輯  收藏 所屬分類: java基礎

          <2012年4月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          收藏夾

          linux

          產品交互

          分析,設計,架構

          安全

          技術牛人

          數據庫

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 图木舒克市| 万安县| 堆龙德庆县| 栖霞市| 嘉荫县| 灵山县| 滦南县| 阿勒泰市| 车险| 天峨县| 夹江县| 宁陕县| 贡嘎县| 巨鹿县| 长顺县| 华亭县| 崇明县| 南郑县| 黑龙江省| 板桥市| 达日县| 汤阴县| 崇礼县| 永德县| 牙克石市| 营山县| 大庆市| 苗栗市| 锡林浩特市| 铁岭市| 醴陵市| 易门县| 赤水市| 米林县| 伽师县| 巴楚县| 左贡县| 陆河县| 宜宾市| 武穴市| 泰和县|