gpt4 book ai didi

swift - Swift 构建中的类型检查规则?

转载 作者:行者123 更新时间:2023-11-30 10:31:00 25 4
gpt4 key购买 nike

我想加快构建时间,因此步骤之一是使用 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)

看来类型转换 IntFloat , DoubleCGFloat显示减慢了 150ms。

最佳答案

请注意,不支持 warn-long-function-bodies ( it was added as an experimental flag )。如果将其删除,我发现表达时间通常报告为快两倍,这让人相信同时使用两个测量值会造成干扰。测量也需要时间。 warn-long-expression 是受支持的选项。

关于swift - Swift 构建中的类型检查规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59230878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com