0

メモ帳で開いたvprojファイルがあり、

ここでのパラメーターの役割は何ですか?とoptimizeの違いは何ですか?TrueFalse

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">

<DebugType>pdbonly</DebugType>

<DefineDebug>false</DefineDebug>

<DefineTrace>true</DefineTrace>

<Optimize>true</Optimize> <!-- Here -->
4

1 に答える 1

1

最適化を行わないと、コンパイラは非常に馬鹿げたコードを生成します。各コマンドは非常に単純な方法でコンパイルされるため、意図したとおりに実行されます。デバッグ ビルドでは、最適化がデフォルトで無効になっています。これは、最適化を行わないと、生成された実行可能ファイルがソース コードと簡単に一致するためです。

レジスタに保持される変数

最適化をオンにすると、コンパイラは多くの異なる手法を適用して、同じことをしながらコードの実行を高速化します。Visual C++ での最適化されたビルドと最適化されていないビルドの最も明白な違いは、変数値が最適化されたビルドでは可能な限り長くレジスターに保持されるのに対して、最適化されていない場合は常にメモリに格納されるという事実です。これはコード速度だけでなく、デバッグにも影響します。この最適化の結果として、デバッガーは、コードをステップ実行しているとき、変数値を確実に取得できません。

ここに私のソースがあります - What does "Optimize Code" option really do in Visual Studio?

于 2014-09-19T12:34:45.970 に答える