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 閱讀(765) 評論(0)  編輯  收藏 所屬分類: java基礎

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

          導航

          統計

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          收藏夾

          linux

          產品交互

          分析,設計,架構

          安全

          技術牛人

          數據庫

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 铜梁县| 壤塘县| 南汇区| 陆河县| 巴塘县| 政和县| 凯里市| 曲沃县| 舞阳县| 苍山县| 盐亭县| 稻城县| 石嘴山市| 南雄市| 公安县| 高阳县| 葫芦岛市| 仪征市| 晋江市| 化德县| 额济纳旗| 西安市| 宣恩县| 武强县| 布拖县| 龙井市| 体育| 砀山县| 楚雄市| 林口县| 若羌县| 婺源县| 年辖:市辖区| 莱西市| 博白县| 九龙县| 宁夏| 慈利县| 周至县| 花莲县| 宝坻区|