评测 Xcode 9.3 Beta + Swift 4.1 对编译速度的提升

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% 了。

欢迎使用图拉鼎和他的团队开发的作品

One Switch - 多功能开关工具

常驻 macOS 菜单栏的开关工具,可以快速开关 AirPods、睡眠模式、切换黑暗模式等。

2 Comments

Jeffre

请问这个编译评测是用的New Build System 还是原来的那个 Standard 编译器?

tualatrix 回复 @Jeffre

用的是默认的 Standard 编译系统。

Leave a Comment