0

/platform の別のオプションに関する Microsoft の説明を読むと、/platform:anycpu を使用すると、32 ビット システムでは 32 ビット アプリケーションとして、64 ビット システムでは 64 ビット アプリケーションとして実行されることがわかりました。

では、たとえば x64 を強制的に使用する必要があるのはなぜですか?

人々が他のオプションを使用する理由はありますか?

4

3 に答える 3

1

重要かつ有用な違いは、メモリ管理にあります。x86 アプリケーションは、4GB を超える RAM を割り当てることはできません。ただし、x64 アプリは可能です。また:

これは、実装時に CLR がコードを実行する方法に関連しています。CLR はオンザフライでコードをコンパイルしますが、IL コードが最初に要求されると、マシン コードにアセンブルされてからキャッシュされます (そのため、アプリケーションでの最初のアクセスが遅くなります)。ここで、x86 を選択すると、アプリケーションが x86 プロセッサで実行されるというフラグがコードに付けられます。したがって、CLR は、そのタイプのプロセッサ専用のアセンブラー関数を使用できます (パフォーマンス上の利点が得られます)。レジスタが大きく、アプリケーションを高速化できる新しい x64 関数がある x64 を選択した場合も同様です。"Any" を選択すると、CLR は CPU 固有の機能を使用せず、標準の命令セットを保持します。

参考:プロジェクト設定 CPU:x86、x64、Any CPU

これが理解に役立つことを願っています。

于 2014-08-06T15:19:04.690 に答える