8


0

64ビットOSを搭載したマシンを最大限に活用するには、.NETのアプリケーションを64ビットで構築する必要がありますか。それとも、32ビットの構築と同じように利用する予定ですか。 基本的に、メモリ不足例外の問題があります。この問題を「解決する可能性がある」64ビットボックスでコンソールアプリケーションを実行することをお勧めします。 問題は、64個のボックスをスピンアップしてその上に現在のアプリをスローするか、64ビットでアプリを再構築する必要があるかということです。

3 Answer


13


アプリが "Any CPU"プラットフォーム用にビルドするように構成されている場合は、どちらでも適切に実行されます。

32/64ビット固有のものが使用されていないことを確認するだけで、問題が発生することがあります。

MSDNのドキュメント here

欠点に関するいくつかの議論については、http://blogs.msdn.com/rmbyers/archive/2009/06/08/anycpu-exes-are-usually-more-trouble-then-they-re-worth.aspx[hereを参照してください。 ]


5


任意のプラットフォーム用に構築されている場合(デフォルト)、64ビットオペレーティングシステム上で64ビットで動作します。

そうは言っても、注意が必要な問題がまだあります。 もしあなたが(p / invoke、C / CLI、あるいはCOM経由で)ネイティブコードとやり取りするなら、そのコードを64ビットに移植する必要があるでしょう。 アプリケーションが100%管理されている場合は、動作します。


1


"Any CPU"はあなたの友達です。

余談として:

32ビットWindowsの2GBのメモリ容量を超える、特に大きな Trie構造がありました。 ほとんどの構造はオブジェクト参照で構成されているため、64ビットに移行するとアプリのメモリ要件が約2倍になり、約4 GBが必要になることがわかりました。 これは、参照を格納するためのメモリが32ではなく64ビット幅だからです。