MonoRail と NHibernate を中心に構築された ASP.NET アプリケーションがあり、64 ビット モードまたは 32 ビット モードで実行する場合に奇妙な動作に気付きました。すべてが AnyCPU としてコンパイルされ、両方のモードで正常に動作しますが、メモリ使用量は劇的に異なります。
ANTS からの次のスナップショットを見てください。
32bit_snapshot:
対
64bit_snapshot:
両方のスナップショットの使用シナリオはほとんど同じです (両方の実行で同じページにヒットしました)。
まず、64 ビット モードで未使用メモリが非常に多いのはなぜですか? また、64 ビット モードでアンマネージ メモリのサイズが 4 倍になるのはなぜですか?
これに関する洞察は本当に役に立ちます。