2011-12-26 7 views
2

私は以下の質問をしています:NGEN x86対.NET実行可能ファイルを含むx64

私の.NETアセンブリはx86モードでコンパイルされています。 x64 WindowsシステムでNGENのパフォーマンス上の利点を引き続き活用できますか? x86アセンブリはx64でネイティブコードにコンパイルされますか?

+0

特定のターゲットプラットフォームでNGENを実行する必要がありますが、どうしてですか?注:NGENはJITを減らすだけです...それはいくつかの場合に役立ちますが、魔法のパフォーマンスの弾丸ではありません。 –

+0

アーキテクチャに応じて異なるNGENバージョンを実行する必要がありますか?それとも普遍的なものがありますか? – SharpAffair

+0

正直言って、分かりません。 –

答えて

4

x86でコンパイルされたアセンブリは、64ビットシステムでiwow64を実行しますが、NGCPに関係なく、AnyCPUでコンパイルされたアセンブリはネイティブで実行されます。 x86用にコンパイルされたアセンブリは、64ビットシステム上で32ビットアセンブリをロードでき、AnyCPU用にコンパイルされたコードは32ビットのDLLをロードしません。

NGENを使用すると、アセンブリのJITコンパイルが回避され、x64システムでもx86でコンパイルされるとアセンブリはネイティブx86コードになります。

関連する問題