swift - 如何对 Swift 代码执行进行基准测试?

标签 swift performance

有没有一种方法/软件可以提供执行一段用 Swift 编写的代码所需的精确时间,除了以下内容?

let date_start = NSDate()

// Code to be executed 

println("\(-date_start.timeIntervalSinceNow)")

最佳答案

如果您只需要一个代码块的独立计时函数,我可以使用以下 Swift 辅助函数:

func printTimeElapsedWhenRunningCode(title:String, operation:()->()) {
    let startTime = CFAbsoluteTimeGetCurrent()
    operation()
    let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime
    print("Time elapsed for \(title): \(timeElapsed) s.")
}

func timeElapsedInSecondsWhenRunningCode(operation: ()->()) -> Double {
    let startTime = CFAbsoluteTimeGetCurrent()
    operation()
    let timeElapsed = CFAbsoluteTimeGetCurrent() - startTime
    return Double(timeElapsed)
}

前者将记录给定代码段所需的时间,后者将其作为 float 返回。作为第一个变体的示例:

printTimeElapsedWhenRunningCode(title:"map()") {
    let resultArray1 = randoms.map { pow(sin(CGFloat($0)), 10.0) }
}

将注销类似:

Time elapsed for map(): 0.0617449879646301 s

请注意 Swift benchmarks will vary heavily based on the level of optimization you select ,所以这可能只对 Swift 执行时间的相对比较有用。甚至这可能会在每个测试版的基础上发生变化。

关于swift - 如何对 Swift 代码执行进行基准测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25006235/

相关文章:

javascript - 在 dom 中有大量输入标签的 IE 上,聚焦和/或选择输入元素速度较慢

performance - 虚拟机内基准测试的可信度?

ios - 即使我使用了 AppGroup,我的 Iwatch 也无法获取从 ios 应用程序保存的数据

swift - 在 Swift 3 中使用未声明的类型 "Decodable"/"Codable"

ios - 随机图像核心-点击按钮时显示背景

javascript - 使用 "a"标签时如何触发点击事件

java - Heroku 性能衡量指标

sql-server - 在 SQL Server 中,什么性能更好 : where ProcessedDate is null or where Processed = 0

SwiftUI 无法返回函数 View

ios - FirebaseUI iOS 删除取消按钮