2013-01-31 76 views
3

對於SO以及網絡上的所有內容,關於LLVM如何優化代碼有一些非常好的描述。但是這些都不能回答我的具體問題。XCode,LLVM和代碼優化 - 最快,最小和無代碼

在Xcode中,項目和目標設置中有多種代碼優化選項。我知道在開發過程中不需要優化,但是爲什麼在編譯發佈版本的時候會選擇Fastest,Smallest[-Os]以外的任何東西。

+0

在哪個例子中你見過這樣的事情? – trudyscousin

+1

@trudyscousin我沒有。但是,選項在那裏,那麼就有一個理由來使用它們。我只是想更好地理解一切。 –

回答

3

在大多數情況下,-Os是一個不錯的選擇。它具有空間優化和速度優化的完美組合。

然而,其他選項確實有一些呼籲:

  • -O/- O1:「我希望有更多一點調試優化代碼的能力」
  • -02:(OK ,老實說不知道爲什麼會選擇-O2 over -Os。也許如果一個特定的代碼大小優化-Os會損害 的性能太多?)
  • -O3:「這部分代碼需要很快,而且響應足夠好以積極內聯和循環展開來抵消代碼 大小懲罰「