64 ビット OS を搭載したマシンを最大限に活用するには、.NET のアプリケーションを 64 ビットでビルドする必要がありますか、それとも 32 ビット ビルドと同様にそれを利用しますか。基本的に、メモリ不足の例外に関する問題があり、問題を解決する「可能性がある」64 ビット ボックスでコンソール アプリを実行することをお勧めします。問題は、64 ボックスをスピンアップして現在のアプリをその上に投入できるか、それとも 64 ビットの方法でアプリを再構築する必要があるかということです。
3 に答える
アプリが「任意の CPU」プラットフォーム用にビルドするように構成されている場合、どちらでも適切に実行されます。
32/64 ビット固有のものを使用していないことを確認してください。そうしないと、問題が発生します。
MSDN ドキュメントはこちら。
欠点に関する議論については、こちらを参照してください
任意のプラットフォーム用にビルドされている場合 (デフォルト)、64 ビット オペレーティング システム上で 64 ビットで実行されます。
そうは言っても、注意すべき潜在的な問題がまだあります。(p/invoke、C++/CLI、または COM を介して) ネイティブ コードとやり取りする場合は、そのコードを 64 ビットに移植する必要があります。アプリケーションが 100% 管理されていれば、問題なく機能します。
「どんなCPUでも」はあなたの味方です。
余談として:
32 ビット Windows の 2GB のメモリ空間を超える、特に大きなTrie構造がありました。構造のほとんどがオブジェクト参照で構成されているため、64 ビットに移行するとアプリのメモリ要件がほぼ 2 倍になり、約 4 GB が必要になることがわかりました。これは、参照を格納するメモリが 32 ビットではなく 64 ビット幅であるためです。