- 2006年9月 3日 13:24
第 5 章 「マネージ コード パフォーマンスの向上」
ちょっと長いドキュメントですが、「sealed キーワードの使用を検討する」の見出しの部分になります。
簡単に説明すると、仮想メソッド(virtual)をオーバーライド(override)していてもう継承する予定が無い場合、sealedを付けると高速化するというもののようです。
「クラス設計を拡張する必要がないなら、仮想メンバは使わないようにしてください。仮想テーブル検索による呼び出しの負担が大きく、実行時のパフォーマンス最適化を妨げる場合があるためです。」
と書いてあるように、仮想メソッドはオーバーヘッドが大きいようです。
sealedで明示的に終わりを宣言すると、コンパイラの最適化でvirtualなメソッドの中身をインライン化するようです。
そうすると実質的にはvirtualの呼び出しが行われなくなるので(インライン化されているから)、高速化するという理屈なんじゃないかなと思います。
微妙な高速化ですが、繰り返し処理で使われている場合は改善が見込めるかもしれません。
- Newer: 【Atlas】LiveControls
- Older: 【ASP.NET】Atlasタグがcc1とかになってしまうこと
Comments:0
Trackbacks:0
- TrackBack URL for this entry
- http://magicbox.sakura.ne.jp/mt/mt-tb.cgi/139
- Listed below are links to weblogs that reference
- 【VisualStudio.NET】sealedキーワードでインライン化 from 爆裂!C#野郎