2011-01-10 23 views
1

Release IS NOT Debug: 64bit Optimizations and C# Method Inlining in Release Build Call StacksCLR言語の最適化。言語コンパイラVS JITコンパイラ

スコットHaselmanは「がマネージコードでの最適化のほとんどはJITコンパイラではなく、言語コンパイラによって行われています。」と言います上のポストの

「JITコンパイル時間」は「実行時間」のように思えるので、JITコンパイル時間の最適化によってプログラムが遅くなることがあります。しかし、彼はそれが反対であると言います。 CLRの最適化がこのように機能する理由を知っていますか?

+0

私は本当にその質問が理解できません。 NGENのようなものを事前にネイティブイメージにコンパイルすることを頼んでいるので、JITerをバイパスして実際にアプリケーションの実行を遅くすることができますか?あるいは、JITerの仕事(最適化)が実際にプログラムの実行を遅くするかどうかを尋ねていますか? –

答えて

0

はい、それは遅く、また高速です。 CLR関数の初期実行は、JITコンパイラが関数を機械コードにコンパイルするのに時間がかかるため、ネイティブルーチンよりも遅くなります。しかし、後続の実行では、JITコンパイラはAOT(先行時間)コンパイラよりもアプリケーションの詳細が分かっているため、実際にはコードが高速になる可能性があります。

たとえば、JITコンパイラでは、サポートされているプロセッサでSSE拡張を有効にすることができます。

関連する問題