怦然心動的編譯時間優化魔法 - 丁沛堯 === {%hackmd FGRWt1UuTFKk0wSbGgg-SA %} ## YouTube {%youtube BfU4v3XHKxY %} product -> perform action -> build with Timing summary ## 優化Build Setting 1. 取消生成dSYM (在Debug的時候) 2. 調整Compilation Mode 選擇Incremental (只build修改過的部分), 不要選whole module 3. 調整Optimization Level 選擇No optimization 4. 優化CocoaPods 改podFile裡面的config ![](https://i.imgur.com/VqsBgKE.jpg) 5. 使用Carthage 取代CocoaPods * Carthage設定比較麻煩,下載後只需編譯一次 * 可以把要把build比較久的三方,改到Carthage ![](https://i.imgur.com/XFSEkNf.png) ## 優化程式碼 ![](https://i.imgur.com/W4ms7tE.png)(效果比較不明顯) 2. 清楚定義變數型別 ``` var x = makeValue() var x: String = makeValue() ``` 3. 減少暴露不必要的介面,方法 * func使用 `private func` ## 總結 * 減少編譯時間 * 分析編譯緩慢原因 * 優化專案的編譯選項 * 用Carthage取代要Build比較久的三方 * 優化程式碼,減少編譯次數 https://medium.com/ichef ###### tags:`iPlayground2019`