我想加快构建时间,因此步骤之一是使用 Other Swift Flags
和
-Xfrontend -warn-long-function-bodies=100
-Xfrontend -warn-long-expression-type-checking=100
但我不太确定类型检查是如何工作的。例如,这是一个用于创建 random CGFloat
的简单函数。类型检查是否超过 200ms
static func randomColorValue() -> CGFloat {
return CGFloat(Int.random(in: 0...255))/255.0
}
但是改变成这样
static func randomColorValue() -> CGFloat {
let rnd = Int.random(in: 0...255)
let frnd = CGFloat(rnd)
let result = frnd/255.0
return result
}
或者像这样
static func randomColorValue() -> CGFloat {
let rnd : Int = Int.random(in: 0...255)
let frnd : CGFloat = CGFloat(rnd)
let result : CGFloat = frnd/255.0
return result
}
类型检查仍然超过 200ms。
这是怎么回事?是否有一套处理构建时间的规则和最佳实践?
我的 Mac 有点旧(2012 年),也许这就是问题所在?
编辑:
关闭后-warn-long-function-bodies
有问题的行出现了,那就是
CGFloat(rnd)
看来类型转换 Int
至Float
, Double
或CGFloat
显示减慢了 150ms。
最佳答案
请注意,不支持 warn-long-function-bodies
( it was added as an experimental flag )。如果将其删除,我发现表达时间通常报告为快两倍,这让人相信同时使用两个测量值会造成干扰。测量也需要时间。 warn-long-expression
是受支持的选项。
关于swift - Swift 构建中的类型检查规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59230878/