如何提高Swift的编译时间?

在使用Swift 2.3和Xcode 7.3.1时,我在此IDE中编译源代码时遇到问题。 因为出于某些项目机密原因,我和我的团队决定继续使用2.3,而不是升级到3.0或更高版本。 影响团队绩效的主要原因之一是我们在没有足够的时间进行大量迁移。

实际上,问题仍然没有发生在Xcode 7.3.1上,我认为Xcode 8也没有,但是相当容易(p / s:我听说8.2版本解决了问题:x)。 谈论它,有两个主要因素:

  1. 通过Xcode,它不利于Dynamic Framework执行。 这意味着Xcode会重新构建所有源代码项目,而不是仅查找和构建未构建的源。 如果添加更多框架或第三方,则需要更多时间来编译它们。
  2. 开发人员,我为什么要这样说。 通常,在进行编码时,开发人员通常会忽略来自Xcode的使用Auto Layout对行和UI进行编码的警告(aka⚠),而倾向于使用Swift提供的推断变量。

贾佐
保存屏幕截图,GIF和网站的简单方法。 通过与您的用户更快,更智能地共享,让每个人都开心。

理想情况下,我们将解决以上每个问题。

  1. 使用Xcode,更新到最新的Xcode版本,并尽可能将Swift升级到当前版本(3.0)。
  2. 好了,有了Dev,我们还有另一件事要做:
  • 解决所有来自Xcode的警告。
  • 改进自己的代码。

示例代码:

 让myCompany = [ 
“雇员”: [
“员工1”:[“属性”:“值”],
“员工2”:[“属性”:“价值”],
“员工3”:[“属性”:“价值”],
“员工4”:[“属性”:“价值”],
“员工5”:[“属性”:“价值”],
“员工6”:[“属性”:“价值”],
“员工7”:[“属性”:“价值”],
“员工8”:[“属性”:“价值”],
“员工9”:[“属性”:“价值”],
“员工10”:[“属性”:“价值”],
“员工11”:[“属性”:“价值”],
“员工12”:[“属性”:“价值”],
“员工13”:[“属性”:“价值”],
“员工14”:[“属性”:“价值”],
“员工15”:[“属性”:“价值”],
“员工16”:[“属性”:“价值”],
“员工17”:[“属性”:“价值”],
“员工18”:[“属性”:“价值”],
“员工19”:[“属性”:“价值”],
“员工20”:[“属性”:“价值”],
]
]

修正为:

 让myCompany:Dictionary  = [ 
“雇员”: [
“员工1”:[“属性”:“值”],
“员工2”:[“属性”:“价值”],
“员工3”:[“属性”:“价值”],
“员工4”:[“属性”:“价值”],
“员工5”:[“属性”:“价值”],
“员工6”:[“属性”:“价值”],
“员工7”:[“属性”:“价值”],
“员工8”:[“属性”:“价值”],
“员工9”:[“属性”:“价值”],
“员工10”:[“属性”:“价值”],
“员工11”:[“属性”:“价值”],
“员工12”:[“属性”:“价值”],
“员工13”:[“属性”:“价值”],
“员工14”:[“属性”:“价值”],
“员工15”:[“属性”:“价值”],
“员工16”:[“属性”:“价值”],
“员工17”:[“属性”:“价值”],
“员工18”:[“属性”:“价值”],
“员工19”:[“属性”:“价值”],
“员工20”:[“属性”:“价值”],
]
]
  • 如果不需要,请限制使用大型框架-libs-第三方。
  • 使用测量工具跟踪时间。

幸运的是,我找到了一个可以做到这一点的工具。 那个叫Build Time Analyzer

RobertGummesson / BuildTimeAnalyzer-for-Xcode
BuildTimeAnalyzer-for-Xcode – Swift的构建时间分析器 github.com

下载仓库并按以下步骤构建到应用程序:

复制此剪贴板并粘贴到Xcode中的“构建设置”。 做完了! 现在,构建您的应用程序以进行检测…

我尝试在我的演示项目上进行构建和衡量,然后看看结果。 编译文件的最长时间为DataController.swift(198.2ms),构建项目的持续时间为1s。 在我们公司的项目中,花费了5分钟或更长时间。

单击工具的第二行,它会带您进入:

啊哈,根本问题是警告。 删除警告并重建后,我的测量工具如下所示:

编译时间为73.6ms。 魔法! 像以前一样继续修复所有文件。

P / S:还应考虑:

Developear –加快Swift项目的编译时间
加快Swift项目的编译时间2016年12月30日 developear.com