【发布时间】:2018-01-11 16:24:35
【问题描述】:
std::chrono 宣称它可以将结果报告到纳秒级。在一台典型的 x86_64 Linux 或 Windows 机器上,人们期望它有多准确?例如,对于 10 ns、10 µs、10 ms 和 10 s 的测量,误差线是多少?
【问题讨论】:
-
你问的是
chrono的什么时钟? -
这可能取决于您的硬件和操作系统。库可以支持什么和平台提供什么是两个不同的东西。
-
@DrewDormann 我不这么认为。这个问题是在询问与时钟本身的基本精度不同的概念。
-
对于未来的读者:请注意分辨率(
period())和准确性之间的重要区别。例如(一个纯粹的假设示例,不一定与 C++ 相关联)具有纳秒分辨率的时钟可能具有 0.5 纳秒精度或 3 纳秒分辨率或 500 纳秒精度。问题在于准确性。 -
查询
period是错误的。period提供时钟的分辨率,但不提供时钟的准确度。非常不同的概念。steady_clock需要产生纳秒分辨率,但不要求它以每纳秒 1 纳秒的增量向上滴答;通常,它会以明显更大的间隔向上滴答。