Windows Formsアプリケーションを最適化するための資料(1)

Optimizing Your Application

How To Build A Pig Of An Applicationが面白い*1

  • 特にスレッドプールを使わずにたくさんスレッドを使う
  • たくさんの配列を割り当てて、ガベージコレクタにそれらをクリーンアップさせる
  • 関数呼び出しの引数に値をたくさん持った構造体を使う
  • 出来る限り多くの例外をスローする
  • ハッシュテーブルの代わりにデータベースを使う、など

これは反面教師ということで、全部逆に取るべきなんでしょうね。
三つ目が怪しいですが、関数呼び出しの引数だと構造体は値がコピーされるから、
クラスの利用を検討した方がいいよ、という意味でしょう。多分あってるはず。

意味を逆にすると、こんな感じでしょうか。

  • スレッドは出来る限り少なくし、可能であればスレッドプールの利用を検討する
  • 配列の割り当ては出来る限り少なくし、ガベージコレクタによる回収を避ける
  • 関数呼び出しの引数には値をたくさん持つ構造体は使わない
  • 出来る限り例外がスローされないようにする
  • データベースの代わりにハッシュテーブルを使う

統括として以下のように書いてあった。

  • マネージドコードは高速に動作する
  • スタートアップとワーキングセットボトルネックになる
  • スマートなコーディングはアプリケーションを高速にし得る
  • 常に性能に注意せよ

Windows Forms .NETは結構ためになりそうなものが多そう。ナイス。

*1:豚のようにメモリを喰らうアプリの作り方かな?