2

为了优化我的应用程序的构建时间,我将以下内容添加到我的OTHER_SWIFT_FLAGS

OTHER_SWIFT_FLAGS = 
-Xfrontend -warn-long-expression-type-checking=75
-Xfrontend -warn-long-function-bodies=75

我收到了一个关于这种特定类型检查速度慢的警告,我不知道我是否可以在这里以某种方式帮助编译器。

var delay: TimeInterval = TimeInterval(index) * 0.05

有什么建议可以加快这种基本算术运算的编译时间吗?

我正在使用 Swift 5 运行 Xcode 11.5

Xcode 截图

还尝试将数字显式转换为TimeInterval,这是不需要的,因为默认情况下所有数字都是双精度数。 在此处输入图像描述

4

2 回答 2

1

编译器执行类型检查。如果您的表情很长,则需要时间。有时当表达式太长时,您甚至会收到如下错误:

编译器无法在合理的时间内对该表达式进行类型检查;尝试将表达式分解为不同的子表达式

尝试类似的东西

var delay: TimeInterval = TimeInterval(index) * TimeInterval(0.05)
于 2020-06-29T15:23:21.610 回答
0

在您的构建设置中,在“Swift Compiler - General”下检查“Reflection Metadata Level”并尝试将其设置为“None”。

自从升级到 Xcode 11.4 后,我的项目从大约 20 秒编译到大约 6 - 7 分钟编译。

我注意到它只发生在 Debug 版本中,这很奇怪,因为 Release 版本执行了更多优化,并且确实需要更长的时间来编译。我最终将缓慢的构建追溯到“反射元数据级别”设置。默认情况下,“调试”版本设置为“全部”。

这可能是 Xcode 11.4 及更高版本中包含的 Swift 编译器中的一个错误,因为此设置在早期版本中从未对我造成问题。(它开始发生在 Swift 编译器版本 5.2 中。)

于 2020-06-30T08:19:08.177 回答