« DB2の自動インストール | Main | Perf4J : org.perf4j.LoggingStopWatch »

2009.02.22

Perf4J

 Perf4J・・・Perf4J is to System.currentTimeMillis() as log4j is to System.out.println()(System.out.println()に対するlog4jのように、Perf4JはSystem.currentTimeMilles()に対するものである)。

 「ある範囲の処理に要した時間をログ等に出力するライブラリ」って感じですね。ログファイルへの出力の他に、JMX経由でデータを取得できるようにすることもできるようです(ログの内容を元に簡単な集計を行ってくれるクラスも提供されているようです)。

 ただ、処理時間の測定は常に必要となるわけではないため、動的に切り替えたいところではあります(処理時間の測定処理そのものも、実行回数が多くなってくると無視できない負荷になってきますし)。

 幸い、AspectJと組み合わせるとアノテーションで処理時間測定処理を埋め込むことができるようになるので、基本的にいろいろなところにアノテーションを付加した状態で、処理速度の情報を取得したい場合にweavingするように設定ファイルを書き換えることで、近いことができるような感じ? もっとも、weavingはクラスのロード時に行われるため、Webアプリケーションなどで稼働中に出力のオン/オフを切り替えることはできないと思いますが。
 あと、アノテーションを付加していないメソッドの処理時間を測定したくなることもあるかと思いますので、設定ファイルで後からAOPの対象メソッドを指定できた方がもっと便利かも、と思ったりも。

|

« DB2の自動インストール | Main | Perf4J : org.perf4j.LoggingStopWatch »

Java」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference Perf4J:

« DB2の自動インストール | Main | Perf4J : org.perf4j.LoggingStopWatch »