首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLOCK_MONOTONIC与CLOCK_MONOTONIC_RAW截断值

CLOCK_MONOTONIC与CLOCK_MONOTONIC_RAW截断值
EN

Stack Overflow用户
提问于 2014-08-30 14:35:06
回答 1查看 6.8K关注 0票数 2

我正在编写一些测试代码,我需要纳秒分辨率。当我将clock_gettime与CLOCK_MONOTONIC结合使用时,我得到了一个我期望的值: 3327.874384321。当我将clock_gettime与CLOCK_MONOTONIC_RAW一起使用时,我得到了一个我不希望得到的值: 3327.875723000

我已经在一个循环中运行了这一点,所有返回的值都具有纳秒分辨率“截断”,000。

来自uname -a的输出: Linux raspberrypi 3.12.22+ #691抢占Wed Jun 18:29:58 BST 2014 armv6l GNU/Linux

对发生了什么事的想法?怎么称呼?我目前正在考虑禁用NTP,以便可以使用CLOCK_MONOTONIC。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-31 00:54:28

我认为你关于CLOCK_MONOTONIC_RAW被“截断”的结论是错误的。相反,硬件时钟源的分辨率可能只是微秒。您在CLOCK_MONOTONIC中看到的非零低位数是因为来自硬件时钟源的时间戳正在按adjtime/NTP进行的调整进行缩放,以纠正硬件时钟速率中的不精确,否则会使其相对于实时漂移。

要检验这一假设,您应该使用大量的CLOCK_MONOTONIC计时器样本,并在低位数中寻找一个模式。我怀疑你会发现你所有的时间戳都相差数纳秒的倍数,接近但不完全是1000,例如995或1005左右。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25583498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档