2013-06-04 45 views
0

我有一個vproj文件我在記事本已經打開,什麼是vproj文件的構建定義中的`optimize`參數?

什麼是這裏的optimize參數的工作,這將是TrueFalse之間的區別?

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

<DebugType>pdbonly</DebugType> 

<DefineDebug>false</DefineDebug> 

<DefineTrace>true</DefineTrace> 

<Optimize>true</Optimize> <!-- Here --> 
+0

感謝@Sam,你知道,如果這個選項將具有建立在DLL任何影響?在大小方面? –

+0

事實上,將這個問題標記爲重複,而不是讓你或我寫出答案會更好。 – Sam

回答

1

沒有優化編譯器產生非常啞代碼 - 每個命令以非常直接的方式編譯,以便它的預期的事情。 Debug版本默認情況下禁用了優化,因爲沒有優化生成的可執行文件以直接方式匹配源代碼。

變量保存在寄存器

一旦你打開優化,編譯器應用多種不同的技術來使代碼運行速度更快,同時還在做同樣的。 Visual C++中優化和未優化版本之間最明顯的區別在於變量值在優化版本中儘可能長地保存在寄存器中,而沒有優化時它們始終存儲在內存中。這不僅會影響代碼速度,還會影響調試。作爲這種優化的結果,調試器無法可靠地獲取變量值,因爲您在逐步完成代碼。

這裏是我的源 - What does "Optimize Code" option really do in Visual Studio?

相關問題