私はVS 2010でC#プロジェクトのデフォルトのプラットフォームターゲットがx86(それはどのCPUでも使用されていました)であることに気付きました。.Net Platformターゲットの最適化
プラットフォームをx86 vs x64 vs任意のCPUに固定することに基づいて、コンパイラは最適化を実行しますか?
パフォーマンス上の理由から、1つのプラットフォームにアプリケーションを強制する必要がありますか?
私はVS 2010でC#プロジェクトのデフォルトのプラットフォームターゲットがx86(それはどのCPUでも使用されていました)であることに気付きました。.Net Platformターゲットの最適化
プラットフォームをx86 vs x64 vs任意のCPUに固定することに基づいて、コンパイラは最適化を実行しますか?
パフォーマンス上の理由から、1つのプラットフォームにアプリケーションを強制する必要がありますか?
以前のバージョンのVisual Studioではこれを「任意のCPU」に設定していました。これは、x86マシンでは常にx86を使用することになり、x64マシンではx64またはx86アセンブリがロードされているプロセスが32ビットか64ビットかどうかを確認してください。
問題があるのは、新しいプロセスを開始するとき、「Any CPU」オプションでビルドされた.Net exeは32ビットプロセスではなく64ビットプロセスになり、2つの理由で問題を引き起こす可能性があります。
ので、いくつかのアプリケーションが実際に面倒を価値あるものにするために十分なアドレス空間(すなわちメモリ)を使用すると、デフォルトでは、これらの問題を回避するために、x86のに変更されました。
すばらしい答え。情報をありがとう。 –
私は、この[回答](http://stackoverflow.com/questions/516730/visual-studio-any-cpu-target)が「Any CPU」オプションを理解するのに役立つことも発見しました。 –
ライブラリがデフォルトでAny CPUとlibariesを常にAny Any CPUにする必要があることに気づくでしょう。最適化されていればEXEのみに適用され、それは意味がありません。いいえ、問題は、CPU実行ファイルは通常、自分が何をしているのかを知っている人の手を除いて価値があるよりも面倒です。そして、彼らが望むものを知っている人にとっては、デフォルトは深刻な問題ではありません。
私はこのポリシーに最初は同意しませんでしたが、x86デバッグの経験が優れているので、私はこれをそのままデフォルトとして受け入れるようになりました。
私はそれが最適化されているかどうかわかりませんが、x86用にコンパイルされたライブラリを参照する場合は、x86用のプロジェクトもビルドする必要があります。 – R0MANARMY
変更は、64ビットプロセスとして実行することはめったになく、あまり最適ではない(多くのメモリが使用され、必要なライブラリなどをロードできない)ため、変更が行われました。 – Gabe
これは@ Kragenの答えで掲示されていますが、おそらくここに入れておくべきです - この[question](http://stackoverflow.com/questions/516730/visual-studio-any-cpu-target)任意のCPU 'オプション。 –