其实最快的方案是换新款电脑😂😂😂😂
同样的代码clean后在15款的mbp上编译需要800s, 在m1的Macmini上只需要180s
检测方式
- 耗时warning
// 添加在 Build setting -> Other Swift Flags
// 耗时 > 100ms 的显示warning
-Xfrontend -warn-long-function-bodies=100
-Xfrontend -warn-long-expression-type-checking=100
- BuildTimeAnalyzer工具 链接
类似上面的方法 添加标志 再用工具分析build日志
-Xfrontend -debug-time-function-bodies
-Xfrontend -debug-time-expression-type-checking
- XCLogParser 链接
这个可以把分析结果生成网页展示,包含统计图表,很友好。
但不知道是使用姿势不对还是我测试的项目太庞大,生成的网页非常耗内存且卡,无法正常浏览,没深入研究
耗时代码修改
查了些资料,编译慢的原因主要是swift的类型推断导致,特别是比较复杂的表达式
拆分过于复杂的表达式,避免复杂的lazy,避免大量空合运算符(??),避免复杂闭包嵌套 等等
网友评论