gpt4 book ai didi

ios - Swift 3.0 中不准确的 DispatchTime.now()

转载 作者:行者123 更新时间:2023-11-28 06:28:11 30 4
gpt4 key购买 nike

我正在使用 DispatchTime.now() 来测量事件之间耗时。有时它工作正常,但有时它生成的值远低于我的预期。

我目前的使用情况:

var t = DispatchTime.now()
var pt = DispatchTime.now()

// called when an event happens
t = DispatchTime.now()
var elapsed = Double(t.uptimeNanoseconds - pt.uptimeNanoseconds)
elapsed *= 32768/1000000000
pt = t

这样 t 和 pt 是当前时间和以前的时间,elapsed 以纳秒为单位取差值,转换为双倍,并缩放为 1 秒 = 32768。当此技术失败时,记录的数据比预期的小约 100 倍.缩放不是问题,我已经检查了 t 和 pt 的原始值。我的假设是运行 DispatchTime 的时钟运行速度较慢,可能是因为调试,但总的来说我认为 iOS 会补偿这样的事情。

最佳答案

正如@AlexanderMomchliov 所建议的那样,NSDate 是一种比 DispatchTime 更好的方法。

实现为:

var t: TimeInterval = 0
var pt: TimeInterval = NSDate().timeIntervalSinceReferenceDate

// called when an event happens
t = NSDate().timeIntervalSinceReferenceDate
var elapsed: Double = t - pt
elapsed *= 32768
pt = t

关于ios - Swift 3.0 中不准确的 DispatchTime.now(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41173525/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com