2006年7月26日水曜日

やっぱりString.Formatは遅かった

 log4netに渡すログメッセージを用意するために、あまり考えずにString.Formatを使いまくってたら、本来の機能に支障をきたすほどに遅くなってしまった。Cでもprintfは重い関数の代表みたいなもんだから、当たり前といえば当たり前。数10msの遅れが致命的になる部分で問題が発覚したので、とりあえず文字列の埋め込みしかやってない部分をCapacity指定付きのStringBuilderに置き換えてみた。プロファイラを使って測定したわけではないが、効果は上がっている模様。期待通りの動作をしてくれている。一行で済んだ部分がAppendの連続で見苦しくなったけど、実行時間には代えられない。
 Classをsealedにするとプロパティのアクセスが速くなると言う話も見かけたので、実装が枯れてきたらそっちも試してみよう。

0 件のコメント:

コメントを投稿