小白求教,关于时间戳问题

m0_38130725 2020-01-06 10:52:22
请看代码,这是一段求素数的代码,用时间戳的UnixNano()求这段代码运行所需的时间,发现一个问题:如果v的值为501以下的数,运行结果为0,如果v的值为501时,运行结果就是1000000。是不是纳秒时间戳的最小值就是1000000呢,求大佬指教,谢谢~
...全文
71 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2020-01-06
  • 打赏
  • 举报
回复
不是的吧
用以下的代码试试
s := time.Now().UnixNano()
time.Sleep(time.Nanosecond*1) //停1纳秒
e := time.Now().UnixNano()
fmt.Printf("%d, %d, %d\n", s, e, e-s)
m0_38130725 2020-01-06
  • 打赏
  • 举报
回复
引用 4 楼 m0_38130725的回复:
[quote=引用 3 楼 qybao的回复:]你是windows系统吧?windows系统好像以100纳秒为单位计算
https://stackoom.com/question/2pryv/为什么在Windows上time-Duration的纳秒值会降到最接近的-的倍数
对,是Windows系统。那可能是系统问题了。100w纳秒相当于1纳秒,也不算太长,影响不大,以后再涉及到时间问题的话我就注意一下有这么个事儿就行了。非常感谢[/quote] 应该是100w纳秒相当于1毫秒,打错了😝
m0_38130725 2020-01-06
  • 打赏
  • 举报
回复
引用 3 楼 qybao的回复:
你是windows系统吧?windows系统好像以100纳秒为单位计算
https://stackoom.com/question/2pryv/为什么在Windows上time-Duration的纳秒值会降到最接近的-的倍数
对,是Windows系统。那可能是系统问题了。100w纳秒相当于1纳秒,也不算太长,影响不大,以后再涉及到时间问题的话我就注意一下有这么个事儿就行了。非常感谢
qybao 2020-01-06
  • 打赏
  • 举报
回复
m0_38130725 2020-01-06
  • 打赏
  • 举报
回复
引用 1 楼 qybao的回复:
不是的吧
用以下的代码试试
s := time.Now().UnixNano()
time.Sleep(time.Nanosecond*1) //停1纳秒
e := time.Now().UnixNano()
fmt.Printf("%d, %d, %d\n", s, e, e-s)
大佬按你的代码试了一下,运行结果: 1578287106372698900 1578287106371698900 1000000 无论休眠1纳秒还是100w纳秒,或者是几微秒,几毫秒,只要是100w纳秒以内的时间数,运行结果nanosecond都是1000000。是不是我的程序有问题

2,190

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • Freeman Z
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧