[Java]Log4Jのパフォーマンス2

昨日の続き。どうやら、http://secure.ddo.jp/~kaku/tdiary/ のトップリンクに乗ったみたいで、普段よりアクセス数が多くてビックリさ(@o@)
それは置いといて、山本さんの指摘どおり、昨日のコードはdebugレベルより上(info,fatalなど)のときに効果が出るはずと思ってやったつもりだったんだけど、本来の意味を忘れてdebugレベルでやってしまった。。。

ということで、infoレベルに出力を変えてもういちど。数字は、10回実行の平均値(ms)

  • Stringのみの場合 time(ms) = 0
  • Stringのみの場合(if文あり) time(ms) = 2
  • String + Stringの場合 time(ms) = 6
  • String + Stringの場合(if文あり) time(ms) = 2
  • String + intの場合 time(ms) = 12
  • String + intの場合(if文あり) time(ms) = 1
  • String + int + String の場合 time(ms) = 11
  • String + int + String の場合(if文あり) time(ms) = 2

ということで、マニュアルの書いてあることはほんとで、
1万回繰り返したときに、0.01秒ぐらいの差がでました。
特に、プリミティブ型の変数を含んだ結合してると遅くなってるね。

っていうかさ、
こんな、一生懸命コーディングで書かせても、1万回やって0.01秒の差が出るだけだったら、いっそのことコーディングif文なしで書かせて

  • DBコネクションプーリング取得
  • SQL文チューニング

とかを重点的にやったほうが絶対濃くかがあるよなぁ。
最後の手段ってときに、perlとかで一括変換したほうがいいような気がする。

というけつろんでした。