Swift编译时间非常长

gbk*_*gbk 19 time xcode compilation ios swift

我喜欢Apple和他们做的事情,但是Swift...... 哦上帝!

我对`Swift`编译时有问题.

组态:

  • MacBook Pro(Retina,13英寸,2014年中)
  • 2,6 GHz Intel Core i5
  • 8 GB 1600 MHz DDR3
  • SSD 256(最高800 MB/s)
  • 1k课程
  • 10个豆荚

编译时间: 3分钟.

看起来像" 新的最好和惊人的快速,梦想"这种配置是不够的,它的工作原理Google Chrome-InfiniteLoop(find free memory - eat)


我尝试了各种方法来加快编译时间:

  • 设置HEADERMAP_USES_VFSYES(无变化)

在此输入图像描述

  • 设定Build Settings / Architectures / Build Active Architecture OnlyYES(一些改进)

在此输入图像描述

  • 设置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分钟.可在此处此处找到对此的详细描述

此外,我在代码编写过程中遵循了所有这些规则:

  • 链式功能减少
  • 打开选项
  • 对象的隐式类型(特别是字典)
  • 避免?? 操作员(这个非常饿!!)
  • 避免?:运营商

换句话说,不要使用任何" 新的酷功能 ",因为你会等待多年.

还有一个尝试 - 这里描述的解决方法:

转到产品 - >方案 - >编辑方案.在左侧列中选择Build并取消选中"Find implicit dependencies"但是在第一次构建项目时应保持选中此标志.

但是,这种解决方法不是我正在寻找的,这也可以作为临时解决方案.

Swift 是一种痛苦不是因为它很难写,而是因为它很难使用(至少在某些机器上).

为了比较:我有一个Objective-C2k类的项目和11个pod--干净的编译时间是~30秒.

我还发现了很多关于快速性能的漏洞:

我的问题是:

有没有人有任何改善Swift编译时间的解决方案?

For*_*rge 7

这个问题对我来说也是非常 令人沮丧的.我们已经尝试了你提到的几个解决方案,但没有一个能够解决.

有一件事是在编译时间做出了显著改善:打开Whole Module Optimization,同时增加-OnoneOther Swift Flags.
看到这个 - 加速Swift编译

我使用的是Swift 3Xcode 8.3.


Jac*_*ing 2

您可能已经打开了代码优化,虽然这是构建发布版本所必需的,但对于开发版本而言,它并不是特别重要。

代码优化的作用正是它所说的,它优化您的代码以使生成的最终二进制文件更小。它可以执行诸如将变量/方法重命名为单个字符等操作...就像我说的那样,您在提交到应用程序商店时显然希望这样做,但您可能不关心应用程序在开发时是否更大。

您可以通过转至项目设置 > 构建设置,搜索“optim”,在 Swift 编译器 - 代码生成下将调试构建的优化级别设置为 None [-Onone] 来关闭开发构建的代码优化。

这应该会显着缩短您的构建时间。