2016 年底的时候,我写过一篇文章《评测 Swift 3.0 项目编译优化选项对编译速度的影响》,评测了一下当时新引入的「Whole-Module Optimization」对编译速度的影响。上周 Xcode 9.3 Beta 发布,我又想做一下相关评测了。
这次评测的对比对象是 Xcode 9.2 + Swift 4.0 和 Xcode 9.3 Beta 1 + Swift 4.1。这本来就是一个小幅更新,我本来还不抱太多的期望,但是因为最近在一台老电脑上写 Swift,实在是很痛苦,于是想看看 Xcode 9.3 Beta 有没有提升,一试很有惊喜,于是记录一下。希望正式版也能保持优势。
评测方式
评测:对比 Xcode 9.2 + Swift 4.0 和 Xcode 9.3 Beta 1+ Swift 4.1 的编译速度
评测对象:基于 Swift 4 的奇点 for 微博,约 25,000 行代码
实验方式:按 CMD+B 进行编译,编译前删除掉 ~/Library/Developer/Xcode/DerivedData 目录,以减少缓存影响。
Xcode 配置:
显示编译时间: defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES
测试结果
Xcode 9.2 + Swift 4.0
- 194.777s
- 193.405s
- 197.510s
Xcode 9.3 Beta 1 + Swift 4.1
- 140.734s
- 138.373s
- 126.746s
结论
可以看到,Xcode 9.3 Beta 1 + Swift 4.1 在编译速度上的提升非常显著,平均 135s 就完成了。 而 Xcode 9.2 的平均 194s,提升速度约 30% 上下。
Xcode 9.3 和 Swift 4.1 值得期待!
2018 年 2 月 22 日更新
到了 Xcode 9.3 Beta 3,我的 Code base 也有了不少代码的增长,我继续测试了一轮,以下是结果:
Xcode 9.2 + Swift 4.0
- 241.262s
- 232.943s
- 234.307s
Xcode 9.3 Beta 3 + Swift 4.1
- 164.329s
- 165.622s
- 160.472s
Xcode 9.3 Beta 3 平均 163s,而 Xcode 9.2 平均 236s,依然保持水准,前者比后者快了 30% 左右。
2018 年 3 月 6 日更新
到了 Xcode 9.3 Beta 4,我的 Code base 继续增长,于是继续测试了一轮,以下是结果:
Xcode 9.2 + Swift 4.0
- 263.313s
- 259.289s
- 264.909s
Xcode 9.3 Beta 4 + Swift 4.1
- 160.497s
- 161.512s
- 162.465s
Xcode 9.3 Beta 4 平均 161s,代码量多了,编译速度还保持和 Beta 3 一样!而 Xcode 9.2 平均 263s,比之前的测速多花了 11% 的时间。
可以说,Xcode 9.3 Beta 4 继续改进编译速度,现在比 Xcode 9.2 快约 38% 了。
请问这个编译评测是用的New Build System 还是原来的那个 Standard 编译器?
用的是默认的 Standard 编译系统。