目次
ロギング・パフォーマンス

  1. ロギングがオフのときのパフォーマンスは、とても早く(〜25 nsec)ですが 隠されたパラメータ構築のコストがかかります。

    たとえば、いくつかのカテゴリーcatで、

    cat.debug("Entry: "+i+"="+entry[i]);
    としている場合には、メッセージパラメータの構築コストがかかります。 つまり、それぞれのientry[i]を Stringに変換して、文字列同士の連結することが ログを記録するしないにかかわらず発生します。

    パラメータ構築コストを押さえるためには以下のように書いてください:

    if(cat.isDebugEnabled() {
      cat.debug("Entry: "+i+"="+(entry[i]));
    }
  2. ログ出力を恩にした場合のロギングパフォーマンスは、カテゴリー 階層を渡り歩くコストで割り出されます。階層を渡り歩く典型的なコスト は、5〜15msecです。

  3. 実際にログ出力するのは、100〜300msecのオーダーです。


すべての計測は、233MHz Pentium IIマシンで行いました。 org.apache.log4j.performance.NotLogging  と org.apache.log4j.performance.Logging  にあなたの環境での正確な説明があります。

log4jは多くの機能があるとはいえ、その最初の設計目標は速度です。