1
CLIPS

動的コード生成のパフォーマンス (C# によるプログラミング入門)

634日前に更新 aoki1210aoki1210 643日前に登録
2010年08月24日 GMT 2010年08月15日 GMT

概要

.NET Framework のバージョンが上がるたびに色々と追加され、 今や、動的コード生成にもさまざまなやり方が。 ということで、並べて比較してみたいと思います。

「動的 = リフレクション = むちゃくちゃ遅い」というイメージをもたれる方も多いと思いますが、 実際のところ、1度生成したコードをキャッシュしておくなどの工夫をすれば、意外と許容範囲なパフォーマンスが得られます。

(GUI の描画部分やネットワーク通信部分の遅延と比べれば、演算部分の数倍程度の差は取るに足らない場合が多く、 過剰に気にする必要はありません(もちろん、状況次第)。)

比較コード含めたソースコード一式: DynamicPerformance.zip ポイント

* 毎回リフレクションを呼び出すのはやっぱりかなり(2~3桁)遅い。
* キャッシュ機構を使えば、静的なコードの数倍程度までは速くできる。
* C# 4.0 の dynamic は適切にキャッシュしてくれているので、十分速い。
カテゴリー: プログラム(C#/VB/C++/F#/PS/Iron..) | クリック数: 15 | | ソースサイト: ufcpp.net | カウンタを表示
タグ: C#, Dynamic, Reflection

まだコメントはありません。最初のコメントを登録してみませんか?

コメントするためにはログイン もしくは サインアップしてください。