我有三个 iOS 项目:
- 第一个 - 35k Swift LOC,Swift 2.1(或 2.0?),使用 Xcode 7.2.3 编译
- 第二个 - 15k Swift LOC,Swift 2.3,使用 Xcode 8.2.1 编译
- 第三个 - 15k Swift LOC,Swift 3.0,使用 Xcode 8.2.1 编译
所有这些的编译时间都很糟糕(一个干净的构建需要 10 多分钟),而且每一个的开发速度都慢得像爬行一样。
我已经尝试过:
- Using
Whole Module Optimization
- 改变
C Dialect
编译器默认值
- 分析项目的构建时间并优化瓶颈(一些需要 6-10 秒才能通过数组串联、零合并运算符等进行编译的方法),缩短了大约 15 秒 - 完全不明显的差异
HEADERMAP_USES_VFS = YES
- 还有一些现在不记得了
我正在开发一台 2014 年末推出的 Mac mini,配备 SSD、8GB RAM 和 2.6ghz i5(如果有的话)。
任何人都知道可能会导致这种情况的原因,该怎么办,甚至现在有任何解决方法吗?从我在 SO 和其他地方读到的内容来看,这似乎是一个未解决的编译器问题。
编辑:是的,我正在使用 Cocoapods 来实现依赖。我会尝试搬到迦太基看看会发生什么。
尝试在“构建设置”中设置以下内容作为解决方法。我假设你只有一个目标。
- 将“仅构建活动架构”设置为“是”。
- 将优化级别设置为无 [-Onone]
- 添加名为“SWIFT_WHOLE_MODULE_OPTIMIZATION”且值为“YES”的用户定义设置
- 清空派生数据并构建。
然后,您还可以使用此工具来分析任何编译缓慢的 Swift 文件:https://github.com/RobertGummesson/BuildTimeAnalyzer-for-Xcode https://github.com/RobertGummesson/BuildTimeAnalyzer-for-Xcode
我的构建时间需要 6-7 分钟。我放弃了 Cocoapods,开始使用 Carthage,它有助于干净的构建。即使如此,构建仍然需要 3 分钟。最大的改进来自我上面提到的步骤。
Update
在调试构建中将优化级别设置为“快速、整个模块优化”,而不是添加用户定义的设置。然后在调试版本的其他 Swift 标志中添加“-Onone”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)