在Go中正确测量持续时间

在Go中正确测量持续时间,第1张

在Go中正确测量持续时间

包装时间

单调时钟

*** 作系统同时提供“挂钟”和“单调时钟”,“挂钟”会随时钟同步的变化而变化。一般规则是壁钟用于指示时间,单调时钟用于测量时间。在该程序包中,不是拆分API,而是按时间返回时间。现在,它既包含挂钟读数又包含单调时钟读数。以后的计时 *** 作将使用挂钟读数,但以后的时间测量 *** 作(特别是比较和减法)将使用单调时钟读数。

例如,即使在计时 *** 作期间更改了挂钟,此代码也始终会计算约20毫秒的正经过时间:

start := time.Now()... operation that takes 20 milliseconds ...t := time.Now()elapsed := t.Sub(start)

类似的其他用法,例如time.Since(start),time.Until(deadline)和time.Now()。Before(deadline),对挂钟重置也同样有效。

从Go 1.9(发布于2017年8月24日)开始,Go在持续时间内使用单调时钟。

请参阅提案:Go中的单调经过时间测量。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5125803.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存