2009-07-17 10 views
0

「リリース」モードでコンパイルされたクラスライブラリは、「デバッグ」モードでコンパイルされたクラスライブラリよりも高速かつ効率的に実行されますが、どの程度知っていますか?デバッグDLLを使用した製品モード

編集:これは.net dll用です。

+1

これは、x86用にコンパイルされたネイティブDLLか.netアセンブリですか? –

答えて

1

間違いなくコードの種類によって異なります。プログラムが主に(CLRまたは他の場所で)既存のコードへの一連の呼び出しである場合、最適化することはほとんど影響を与えません。しかし、ハッシュを計算するためにデータをループするなどの重要な処理を行うと、それはもっと速く、容易にキングクリスが言及した2つの要素になります。

Debug/Releaseは、JITコンパイルに影響するフラグであるという点で、.NETではやや奇妙です。つまり、デバッガで実行されるリリースコードは、デフォルトではデバッグコードとして扱われるため、最適化されません。これがあなたを妨害する場合は、デバッガオプションを確認してください。

0

C++/CLIなどの最適化に依存する言語を使用している場合、その差は簡単に10倍になる可能性があります。これは、生成されたILが既に低速になり、デバッガはその上にペナルティを課します。

+0

それは、デバッガのオーバーヘッドではないかもしれないが、私が言及したJITの非最適化機能です。 –

関連する問題