編譯速度監(jiān)測工具BuildTimeAnalyzer
隨著swift項目業(yè)務(wù)代碼不斷增加,導(dǎo)致項目編譯時間越來越長,通過網(wǎng)上查找閱讀了幾篇關(guān)于如何使編譯速度提升的文章,現(xiàn)總結(jié)如下:
1.使用Optional進行拆包時,不可有多重拆包,例如:
let model = listModel.first
let params = ["test":model?.landName ?? "","hello":model?.statusName ?? "","id":model?.landId ?? "","transform":model?.oneCropId ?? ""]
其編譯時間會增加很多,下面分別是寫法一、寫法二、寫法三的編譯時間對比,
??不推薦寫法一
傳值param寫法1.png
推薦寫法二
傳值param寫法4.png
2.使用??(nil-coalescing 空合并運算符) 及 ”+“拼接在一起的耗時,例如:
return CGSize(width: 10 + (view?.bounds.width ?? 0), height: (view?.bounds.height ?? 0) + 22)
??不推薦寫法一
nil-coalescing01.png
推薦寫法二
nil-coalescing02.png
3.使用+或+=操作字符串拼接或數(shù)組拼接時耗時,例如:
let arr1 = [1,2,3]
let arr2 = [3,4,5]
result = arr1 + arr2 + [10]
??不推薦寫法一
使用+或+=.png
推薦寫法二
未使用+或+=.png
4.使用三元運算符與其他操作符結(jié)合或者高階函數(shù)同時使用時耗時,例如:
Snip20201010_30.png
5.一行代碼使用過多的CGFloat轉(zhuǎn)換同時再加上運算符使用時耗時,例如:
Snip20201010_31.png
6.另外有文章說使用lazy時耗時
參考文章如下: