1. 程式人生 > >iOS進階--提高XCode編譯速度、Xcode卡頓解決方案

iOS進階--提高XCode編譯速度、Xcode卡頓解決方案

 

提升編譯連結的速度主要有以下三個方式:

1. 提高XCode編譯時使用的執行緒數

defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 4

XCode預設使用與CPU核數相同的執行緒來進行編譯,但由於編譯過程中的IO操作往往比CPU運算要多,因此適當的提升執行緒數可以在一定程度上加快編譯速度。本人採用的是4核的CPU,將執行緒數改為8後編譯速度略有提升。

2. 將Debug Information Format改為DWARF

在工程對應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

在工程對應Target的Build Settings中,找到Build Active Architecture Only這一項,將Debug時的No改為Yes。
這一項設定的是是否僅編譯當前架構的版本,如果為No,會編譯所有架構的版本。需要注意的是,此選項在Release模式下必須為Yes,否則釋出的ipa在部分裝置上將不能執行。這一項更改完之後,可以顯著提高編譯速度。

本人在設定完以上三個項之後,編譯時間從1分鐘左右減少到10秒左右,因此效果還是相當明顯的。

Xcode卡頓解決方案:


1、禁用indexing

 

   
在終端(terminal) 輸入
defaults write com.apple.dt.XCode IDEIndexDisable 1

 

並重啟Xcode。
(新手勿用哈,附還原命令)
defaults write com.apple.dt.XCode IDEIndexDisable 0

2、減少系統記錄的最近開啟數目數量

開啟系統偏好設定——通用,把“最近使用的專案”由預設10,修改為5或者更少。


   

此時,不一定能立即加速,需要重新啟動系統。

3、提高XCode編譯時使用的執行緒數

defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 4

   

4、 將Debug Information Format改為DWARF

在工程對應Target的Build Settings中,找到Debug Information Format這一項,將Debug時的DWARF with dSYM file改為DWARF。


   

5、將Build Active Architecture Only改為Yes

在工程對應Target的Build Settings中,找到Build Active Architecture Only這一項,將Debug時的No改為Yes。
這一項設定的是是否僅編譯當前架構的版本,如果為No,會編譯所有架構的版本。需要注意的是,此選項在Release模式下必須為No,否則釋出的ipa在部分裝置上將不能執行。這一項更改完之後,可以顯著提高編譯速度。


   

6、有些人習慣用Xcode提交程式碼,不過我一般是分開的Xcode就負責編輯程式碼,提交程式碼的工具另外。