最近在一個大型項目的開發的時候遇到一個很頭疼的問題,由於該項目的代碼更,每次建立聯系1紀要。浪費時間調試。因此,一些研究如何提高編譯鏈接速度,這里給大家分享。
為了提高編譯和鏈接的是以下三種方式的速度:
1. 增加XCode編譯時使用的線程數
defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 4
XCode默認使用與CPU核數同樣的線程來進行編譯,但因為編譯過程中的IO操作往往比CPU運算要多,因此適當的提升線程數能夠在一定程度上加快編譯速度。
本人採用的是4核的CPU,將線程數改為8后編譯速度略有提升。
2. 將Debug Information Format改為DWARF
在project相應Target的Build Settings中,找到Debug Information Format這一項,將Debug時的DWARF with dSYM file改為DWARF。
這一項設置的是是否將調試信息增加到可執行文件里,改為DWARF后,假設程序崩潰,將無法輸出崩潰位置相應的函數堆棧,但因為Debug模式下能夠在XCode中查看調試信息。所以改為DWARF影響並不大。
這一項更改完之后,能夠大幅提升編譯速度。
須要注意的是,將Debug Information Format改為DWARF之后。會導致在Debug窗體無法查看相關類類型的成員變量的值。當須要查看這些值時,能夠將Debug Information Format改回DWARF with dSYM file,clean(必須)之后又一次編譯就可以。
3. 將Build Active Architecture Only改為Yes
在project相應Target的Build Settings中,找到Build Active Architecture Only這一項,將Debug時的No改為Yes。
這一項設置的是是否僅編譯當前架構的版本號,假設為No,會編譯全部架構的版本號。須要注意的是,此選項在Release模式下必須為No。否則公布的ipa在部分設備上將不能執行。
這一項更改完之后,能夠顯著提高編譯速度。
本人在設置完以上三個項之后。編譯時間從1分鍾左右降低到10秒左右,因此效果還是相當明顯的。
版權聲明:本文博主原創文章,博客,未經同意不得轉載。