ロギング・パフォーマンス
- ロギングがオフのときのパフォーマンスは、とても早く(〜25 nsec)ですが
隠されたパラメータ構築のコストがかかります。
たとえば、いくつかのカテゴリーcatで、
cat.debug("Entry: "+i+"="+entry[i]);
としている場合には、メッセージパラメータの構築コストがかかります。
つまり、それぞれのiとentry[i]を
Stringに変換して、文字列同士の連結することが
ログを記録するしないにかかわらず発生します。
パラメータ構築コストを押さえるためには以下のように書いてください:
if(cat.isDebugEnabled() {
cat.debug("Entry: "+i+"="+(entry[i]));
}
- ログ出力を恩にした場合のロギングパフォーマンスは、カテゴリー
階層を渡り歩くコストで割り出されます。階層を渡り歩く典型的なコスト
は、5〜15msecです。
- 実際にログ出力するのは、100〜300msecのオーダーです。
|
すべての計測は、233MHz Pentium IIマシンで行いました。
org.apache.log4j.performance.NotLogging
と org.apache.log4j.performance.Logging
にあなたの環境での正確な説明があります。
log4jは多くの機能があるとはいえ、その最初の設計目標は速度です。
|