Я искал что-то такое же простое, как CFAbsoluteTimeGetCurrent()
, которое не зависит от того, что системные часы остаются неизменными и игнорирует, когда центральный процессор спит (так Я могу запустить длинный тест на моем ноутбуке и пропустить время, когда он спит).Как вычислить быстрое время выполнения, независимо от спящего режима процессора и системных тактовых импульсов
0
A
ответ
0
Мне удалось найти вызов машины, доступный через фундамент, который делает правильные вещи. Я сравнивал время выполнения независимо от изменения системных часов и спала процессора. Вот фрагмент кода, который может контрастировать два метода и может иллюстрировать, как 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 ---")