2 回答

TA贡献1876条经验 获得超5个赞
你的代码没有任何问题。在 Windows 上,系统时间通常每隔 10-15 毫秒左右更新一次,这意味着如果您在此期间查询当前时间两次,您将得到相同的值。
您的操作有时会产生t = 2997600ns = 3ms
,这可以解释这一点。归咎于Windows。

TA贡献1816条经验 获得超4个赞
time.Now()
Go 1.16 中改进了 Windows 下的分辨率,
计时器分辨率现在应约为 500 纳秒。
测试程序:
package main
import (
"fmt"
"time"
)
func timediff() int64 {
t0 := time.Now().UnixNano()
for {
t := time.Now().UnixNano()
if t != t0 {
return t - t0
}
}
}
func main() {
var ds []int64
for i := 0; i < 10; i++ {
ds = append(ds, timediff())
}
fmt.Printf("%v nanoseconds\n", ds)
}
测试输出:
[527400 39200 8400 528900 17000 16900 8300 506300 9700 34100] nanoseconds
- 2 回答
- 0 关注
- 169 浏览
添加回答
举报