「リリース」モードでコンパイルされたクラス ライブラリは、「デバッグ」モードでコンパイルされたものよりも高速かつ効率的に実行されることを知っていますが、どの程度まで知っている人はいますか?
編集:これは .net dll 用です。
「リリース」モードでコンパイルされたクラス ライブラリは、「デバッグ」モードでコンパイルされたものよりも高速かつ効率的に実行されることを知っていますが、どの程度まで知っている人はいますか?
編集:これは .net dll 用です。
それは間違いなくコードの種類に依存します。プログラムの大部分が既存のコード (CLR またはその他の場所) への一連の呼び出しである場合、プログラムを最適化してもほとんど影響はありません。しかし、データをループしてハッシュを計算するなどの重要な処理を行う場合は、はるかに高速になり、kingchris が言及した 2 倍の速さになります。
Debug/Release は、JIT コンパイルに影響を与えるフラグであるという点で、.NET とは少し異なります。つまり、デバッガーで実行されるリリース コードは、既定ではデバッグ コードとして扱われるため、最適化されません。これが邪魔になる場合は、デバッガーのオプションを確認してください。
C++/CLI などの最適化に依存/依存する言語を使用している場合、違いは簡単に 10 倍になる可能性があります。その上でペナルティ。