伴隨著項目的不斷壯大, 編譯速度會變得越來越長,影響我們開發的效率。這時候我們就會需要對Xcode的編譯速度做優化。
首先,我們需要知道怎么準確地測試自己xcode的編譯速度
1.關閉Xcode
2.終端輸入指令:
defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES
3.重啟XCode打開項目,command+B運行,即可查看編譯時間
這里,我們得出項目剛開始運行的時間是
具體的操作方式如下:
<1>.設置xcode最大運行線程數: 直接開到32 在終端輸入如下指令:重啟xcode就可以有效
defaults write xcodebuild IDEBuildOperationMaxNumberOfConcurrentCompileTasks 32
<2>在工程對應Target的Build Settings中,找到Debug Information Format這一項,將Debug時的DWARF with dSYM file改為DWARF。
這一項設置的是是否將調試信息加入到可執行文件中,改為DWARF后,如果程序崩潰,將無法輸出崩潰位置對應的函數堆棧,但由于Debug模式下可以在XCode中查看調試信息,所以改為DWARF影響并不大。這一項更改完之后,可以大幅提升編譯速度。
<3>.將Build Active Architecture Only改為Yes 這一項設置的是是否僅編譯當前架構的版本,如果為No,會編譯所有架構的版本。需要注意的是,此選項在Release模式下必須為No,否則發布的ipa在部分設備上將不能運行。
<4>修改buildSetting中的Optimization Level
這個是xcode Built Setting里的一個參數,Optimization Level是指編譯器的優化層度,優化后的代碼效率比較高,但是可讀性比較差,且編譯時間更長。 它一共有以下幾個選項:
None: 編譯器不會嘗試優化代碼,當你專注解決邏輯錯誤、編譯速度快時使用此項。
Fast: 編譯器執行簡單的優化來提高代碼的性能,同時最大限度的減少編譯時間,該選項在編譯過程中會使用更多的內存。
Faster: 編譯器執行所有優化,增加編譯時間,提高代碼的性能。
Fastest: 編譯器執行所有優化,改善代碼的速度,但會增加代碼長度,編譯速度慢。
Fastest, Smallest: 編譯器執行所有優化,不會增加代碼的長度,它是執行文件占用更少內存的首選方案
所以說我們平時開發的時候可以選擇使用None來不給代碼執行優化,這樣既可以減少編譯時間,又可以看出你代碼哪里有性能問題。
而你的release版應該選擇Fastest, Smalllest,這樣既能執行所有的優化而不增加代碼長度,又能使執行文件占用更少的內存。????
參考資料:
https://www.programering.com/a/MTN1ATNwATQ.html
https://www.jishudog.com/8765/html
https://www.jishudog.com/ios/iostext
https://blog.csdn.net/qq_25131687/article/details/52194034