2010-09-12 86 views
3

當在Visual Studio(我使用2008 SP1)構建項目時,有一個優化選項 稱爲Enable link-time code generation。據我所知,這允許使用特定的內聯技術,這聽起來很酷。C++ visual studio inline

不過,使用此選項顯着增加內置靜態庫的大小。在我的情況下,它是類似於40 mb -> 250 mb,並且,如果您甚至有5-6個巨大的庫,構建過程顯然會變得非常慢。

所以我的問題是 - 值得嗎?。鏈接時代碼生成的效果是否可測量,以便讓我打開它,並忍受sloooooooooooooow構建?

謝謝。

回答

2

我們該怎麼知道?你是遭受較慢鏈接時間的人。 如果你可以忍受較慢的版本,那麼它會加快你的代碼,這是很好的。

如果你想更快的構建,你失去了優化,使您的代碼運行速度較慢。

它值得嗎?這取決於你,沒有別的。你有多耐心?你能等多長時間?

雖然它可以顯着加快您的代碼。如果你需要速度,這是一個非常有價值的優化。

+0

好吧,我其實尋求從別人的答案誰(可能是,有一個人:)異形如果鏈接時代碼生成實際上在,例如,99%的情況下,任何性能影響,何不乾脆把它關閉? – 2010-09-12 13:26:54

+0

好了,最後一句是什麼,我尋找.... – 2010-09-12 13:27:28

+0

@ HardCoder1996:一個很簡單的事情,在開發過程中,編譯調試(無優化),並在自動化測試和交付,充分優化編譯。通過這種方式,您可以爲客戶快速編譯開發和快速二進制文件。 – 2010-09-12 14:12:52

2

這取決於你。這是一個相當主觀的問題。這裏有幾件事可以幫助你做出決定:

  1. 基準性能有和沒有這個功能。有時候更小的代碼運行得更快,有時更多的內聯工作。它並不總是如此清晰和乾燥。
  2. 性能至關重要嗎?您的客戶是否會以目前的速度拒絕您的應用程序,除非您找到了改善這方面問題的方法?
  3. 構建過程中可接受的速度有多慢?當你自己構建它時,你是否必須保持這種狀態?還是可以將它推到測試環境/連續構建機器上?

就個人而言,我會盡力幫助我更快地開發,然後再擔心優化。確保它完成了它首先需要做的事情。