0
我一直在寻找像CFAbsoluteTimeGetCurrent()
这样简单的东西,它不依赖于系统时钟保持不变,并且忽略CPU睡着时(如此我可以在我的笔记本电脑上运行一个长时间运行的基准测试,并跳过它睡着的时间)。如何计算快速执行时间,独立于CPU休眠和系统时钟更改
我一直在寻找像CFAbsoluteTimeGetCurrent()
这样简单的东西,它不依赖于系统时钟保持不变,并且忽略CPU睡着时(如此我可以在我的笔记本电脑上运行一个长时间运行的基准测试,并跳过它睡着的时间)。如何计算快速执行时间,独立于CPU休眠和系统时钟更改
我能够通过基础框架找到一个可以访问的mach调用,它可以做正确的事情。我基准执行时间独立于系统时钟更改和CPU休眠。这是一个可以对比两种方法的代码片段,并且可以说明CFAbsoluteTimeGetCurrent()
与系统时钟的相关性。
import Foundation
let t2 = CFAbsoluteTimeGetCurrent()
let t0 = mach_absolute_time()
codeToBenchmark()
let t3 = CFAbsoluteTimeGetCurrent()
let t1 = mach_absolute_time()
let elapsed = Double(t1 - t0)/1000000000.0
print("--- \(elapsed) \(t3 - t2) seconds ---")