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

标签 swift build-time

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

相关文章:

c++ - C/C++ : how to get integer unix timestamp of build time (not string)

swift - 发出 FTP 数据连接请求时,如果它在装有 iOS 11 的设备上,它总是超时

visual-studio - 有没有办法在 Visual Studio 中显示整个解决方案的构建时间?

ios - Xcode 11.4/iOS13.3.1 无法检查应用程序包

ios - DispatchGroup 仅当方法被调用两次时才会退出

java - 是否可以在java中构建时添加注释?

objective-c - 在 objective-c 中导入 header

ios - PHAsset 的 PHFetchOptions 与 Photos.app 的排序顺序相同

ios - UITableView willDisplayCell 方法的不当行为

ios - 观察添加到 Set 的值 - Swift