まとめとして、処理速度を不等号で表してみました。

C++のstack > C#のFinalizeなし > > C++のheap = C#のDispose > C#のFinalize

C#では出来る限りデストラクタ(ファイナライザ)は使わない。使用は非マネージドリソースを内包している場合だけに限る。Disposeがあるものは出来るだけDisposeを直接呼ぶというのが教訓です。

これまでのところプラットフォーム呼び出しやデストラクタが必要な処理に速度低下の一因があるのは確認できましたが、全体的にはそれほど遅いという数字は出ていません。次はグラフィックスです。何かつかめるでしょうか。