【发布时间】:2020-01-31 00:58:57
【问题描述】:
clock_gettime() 的手册页将 CLOCK_MONOTONIC_COARSE 描述为:
CLOCK_MONOTONIC 的更快但不太精确的版本。在您需要非常快的时候使用,但是 不是细粒度的时间戳。
一个人成为另一个人的“版本”是什么意思?
假设我将 CLOCK_MONOTONIC 值截断到与粗略值相同的精度,我能否有效地比较两者?
【问题讨论】:
-
通俗地说,“版本”是指被引用的函数属于可以获取时间的函数类。
-
如果可以避免的话,我建议不要使用 CLOCK_MONOTONIC_COARSE。正如您所发现的,文档不清楚。我一直在研究 Linux 计时代码,我不相信 MONOTONIC 和 MONOTONIC_COARSE 之间不再有区别。但是如果你真的很在意这种区别,你就不能相信文档,你要么必须检查内核计时代码(这是不可理解的),要么找 Linux 内核计时专家来询问。
-
@Steve Summit:我不同意你的观点,但“这取决于”。我在下面更新了我的答案,添加了这个链接:access.redhat.com/documentation/en-US/Red_Hat_Enterprise_MRG/…
-
@AShelly - 我认为我们已经确定了您考虑使用 CLOCK_MONOTONIC_COARSE 而不是 CLOCK_MONOTONIC 的唯一原因是可能如果您的应用程序正在生成许多性能优势,频繁的“时间”系统调用。 “不太精确”只是意味着“不太准确”。如果这就是您的意思,则不存在“截断”或“舍入”的问题。问:这(连同其他回复/讨论)是否回答了您的问题?如果没有,问:您能否提供一个“用例”来帮助我们更好地理解您的问题?
-
@AShelly:你的问题解决了吗?如果不是,您能否进一步解释一下您不确定的内容(例如,一个用例)?