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 ---")