【发布时间】:2017-03-28 10:23:07
【问题描述】:
我有三个 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 多分钟),并且每个这些的开发都在缓慢地爬行。
我已经试过了:
- 使用
Whole Module Optimization - 将
C Dialect更改为编译器默认值 - 分析项目的构建时间并优化瓶颈(一些方法需要 6 到 10 秒才能通过数组连接、nil 合并运算符等进行编译),缩短了大约 15 秒 - 完全不明显的差异
HEADERMAP_USES_VFS = YES- 其他一些我现在不记得了
如果这很重要的话,我正在开发一台配备 SSD、8GB RAM 和 2.6ghz i5 的 Mac mini。
任何人都知道可能导致这种情况的原因,如何处理它,甚至现在有任何解决方法吗?从我在 SO 和其他地方读到的内容来看,这似乎是一个未解决的编译器问题。
编辑:是的,我将 Cocoapods 用于依赖项。我会试着搬到迦太基看看会发生什么。
【问题讨论】:
-
你在用 cocoapods 吗?
-
是的,我正在使用 cocoapods,是的,我看过那篇文章。它与类型推断问题无关。我已经解决了代码瓶颈。
-
@user7779221 那篇文章不是关于类型推断问题的。这是关于找出哪个方法体编译时间过长。
-
你试过在不同的mac上运行它吗?其他项目是否在您正在编译这些代码的同一台 Mac 上运行良好?例如:如果您尝试从 GitHub 编译 FlappySwift,构建时间如何?