我喜欢
Apple
和他们所做的事情,但是Swift
...天哪!
配置:
编译时间:3分钟。
看起来像“新的最佳和惊人的迅速,梦想”这个配置还不够,它的工作原理就像
Google Chrome
- InfiniteLoop(find free memory - eat)
HEADERMAP_USES_VFS
设置为 YES
(不变)Build Settings / Architectures / Build Active Architecture Only
到YES
(一些改进)设置
defaults write com.apple.Xcode PBXNumberOfParallelBuildSubtasks 4
(8)
(有时甚至变得更糟)将优化级别设置为
-Onone
(无重大改进)DWARF
而不是 DWARF with dSYM File
Find implicit dependencies
(无重大影响)
改善)创建了一个新项目并将所有文件移动到新项目(花费太长时间并提供了小的时间改进)
将编译器从默认更改为其他可用的(更糟糕)
关于如何编写快速编译的 Swift 代码的严格规则(下面有更多详细信息)
我想每个人都在等待新的
Xcode 8.2 beta 2
,其中:
当目标很小时,Xcode 不会重建整个目标 发生了变化。 (28892475)
但这只是部分正确,我的编译时间仍然很长 - 从 6-12 分钟变为 3-8 分钟。详细描述可以在这里和这里
找到此外,我在代码编写过程中遵循了所有这些规则:
换句话说,不要使用任何“新的酷功能”,因为你会等待很长时间。
再尝试一次 - 是此处描述的解决方法:
进入产品->方案->编辑方案。选择左侧的构建 列并取消选中“查找隐式依赖项”但此标志应该 当您第一次构建项目时,请保持检查状态。
但是,这个解决方法不是我正在寻找的,这也可以作为临时解决方案。
Swift
是一种痛苦,不是因为它很难编写,而是因为它很难使用(至少在某些机器上)。
作为比较:我在
Objective-C
上有一个项目,有 2k 个类和 11 个 pod - 干净的编译时间约为 30 秒。
我还发现了很多关于快速性能的开放错误:
我的问题是:
这个问题对我来说也是极其令人沮丧。我们已经尝试了您提到的几种解决方案,但没有一个有效。
编译时间显着改善的一件事是: 打开
Whole Module Optimization
,同时在 -Onone
中添加 Other Swift Flags
。我将
Swift 3
与 Xcode 8.3
一起使用。
我们使用 Carthage 而不是 Cocoapods 来包含第三方库,从而大大缩短了编译时间。
您可能已打开代码优化,虽然这是构建发布版本所必需的,但对于开发版本而言,它并不是特别重要。
代码优化的作用正如其所言,它优化您的代码以使生成的最终二进制文件更小。它可以执行诸如将变量/方法重命名为单个字符等操作...就像我说的那样,您在提交到应用程序商店时显然希望这样做,但您可能不关心应用程序在开发时是否更大。
您可以通过转到“项目设置”>“构建设置”,在“Swift 编译器 - 代码生成”下搜索“optim”,将调试构建的优化级别设置为“无”[-Onone],从而关闭开发构建的代码优化。
这应该会显着缩短您的构建时间。
整个模块优化,无调试限制
只需添加 SWIFT_WHOLE_MODULE_OPTIMIZATION 作为值 YES 的 用户定义 设置,您的编译时间应该会大大缩短。
此修复是由 Zalando 的开发人员引入的。向他们大声喊叫。 https://jobs.zalando.com/tech/blog/improving-swift-compilation-times-from-12-to-2-minutes/?gh_src=4n3gxh1