天天看點

xCode BuildSetting 設定

一 編譯選項設定

1 Optimization Level 編譯器的優化級别

編譯政策是對代碼編譯過程的優化,優化後的代碼效率比較高,但是可讀性比較差,且編譯時間更長。

release模式設定為Fastest, Smallest[-Os] Debug模式設定為None

設定 參數
None 編譯器不會嘗試優化代碼。在開發期間,當您專注于解決邏輯錯誤并需要快速編譯時,請使用此選項。請勿使用此選項來運送可執行檔案。
Fast 編譯器執行簡單的優化以提高代碼性能,同時最小化對編譯時間的影響。此選項在編譯期間也使用更多記憶體。
Faster 編譯器幾乎執行所有支援的優化,不需要空時權衡。編譯器不使用此選項執行循環展開或函數内聯。此選項會增加編譯時間和生成代碼的性能。
Fastest 編譯器執行所有優化以嘗試提高生成代碼的速度。當編譯器執行積極的函數内聯時,此選項可以增加生成代碼的大小。通常不建議使用此選項。
Fastest, Smallest 編譯器執行通常不會增加代碼大小的所有優化。這是傳送代碼的首選選項,因為它為您的可執行檔案提供了更小的記憶體占用。

2 Debug Information Format

debug 模式設定為DWARF

這一項設定的是是否将調試資訊加入到可執行檔案中,改為DWARF後,如果程式崩潰,将無法輸出崩潰位置對應的函數堆棧,但由于Debug模式下可以在XCode中檢視調試資訊,是以改為DWARF影響并不大。這一項更改完之後,可以大幅提升編譯速度。

release 模式設定為

DWARF with dSYM File

3 Build Active Architecture Only

  1. 設定為NO的時候,會編譯支援的所有的版本
  2. 設定為YES的時候,是為Debug的時候速度更快,它隻編譯目前的architecture 版本

以上2 和 3 對會對縮短代碼的編譯時間。

4 Generate Debug Symbols 調試符号

和xcode 預設的一緻即可

Generate Debug Symbols

設定為

YES

時,編譯産生的.o檔案會大一些,當然最終生成的可執行檔案也大一些。

Generate Debug Symbols

設定為

NO

的時候,在Xcode中設定的斷點不會中斷。

5 Enable Bitcode

對應iOS,bitcode是可選的。

對于watchOS,bitcode是必須的。

Mac OS不支援bitcode。

LLVM是目前蘋果采用的編譯器工具鍊,Bitcode是LLVM編譯器的中間代碼的一種編碼,LLVM的前端可以了解為C/C++/OC/Swift等程式設計語言,LLVM的後端可以了解為各個晶片平台上的彙編指令或者可執行機器指令資料,那麼,BitCode就是位于這兩者直接的中間碼. LLVM的編譯工作原理是前端負責把項目程式源代碼翻譯成Bitcode中間碼,然後再根據不同目标機器晶片平台轉換為相應的彙編指令以及翻譯為機器碼.這樣設計就可以讓LLVM成為了一個編譯器架構,可以輕而易舉的在LLVM架構之上發明新的語言(前端),以及在LLVM架構下面支援新的CPU(後端)指令輸出,雖然Bitcode僅僅隻是一個中間碼不能在任何平台上運作,但是它可以轉化為任何被支援的CPU架構,包括現在還沒被發明的CPU架構,也就是說現在打開Bitcode功能送出一個App到應用商店,以後如果蘋果新出了一款手機并CPU也是全新設計的,在蘋果背景伺服器一樣可以從這個App的Bitcode開始編譯轉化為新CPU上的可執行程式,可供新手機使用者下載下傳運作這個App.

iOS