概要 .NET Framework のバージョンが上がるたびに色々と追加され、 今や、動的コード生成にもさまざまなやり方が。 ということで、並べて比較してみたいと思います。 「動的 = リフレクション = むちゃくちゃ遅い」というイメージをもたれる方も多いと思いますが、 実際のところ、1度生成したコードをキャッシュしておくなどの工夫をすれば、意外と許容範囲なパフォーマンスが得られます。 (GUI の描画部分やネットワーク通信部分の遅延と比べれば、演算部分の数倍程度の差は取るに足らない場合が多く、 過剰に気にする必要はありません(もちろん、状況次第)。) 比較コード含めたソースコード一式: DynamicPerformance.zip ポイント 毎回リフレクションを呼び出すのはやっぱりかなり(2~3桁)遅い。 キャッシュ機構を使えば、静的なコードの数倍程度までは速くできる。 C# 4.0 の
![[雑記] 動的コード生成のパフォーマンス(C# によるプログラミング入門)](https://cdn-ak-scissors.b.st-hatena.com/image/square/4d1b2b57fc676d21e7f59f354364abeac0ea062e/height=288;version=1;width=512/https%3A%2F%2Fufcpp.net%2Fimages%2Flogo_4.jpg)