linux - CLOCK_REALTIME 和 CLOCK_MONOTONIC 的区别?

您能解释一下 CLOCK_REALTIMECLOCK_MONOTONIC 在 Linux 上由 clock_gettime() 返回的时钟之间的区别吗?

如果我需要计算外部源生成的时间戳与当前时间之间的耗时,哪个更好?

最后,如果我有一个 NTP 守护进程定期调整系统时间,这些调整如何与 CLOCK_REALTIMECLOCK_MONOTONIC 中的每一个交互?

最佳答案

CLOCK_REALTIME 表示机器对当前挂钟时间的最佳猜测。如Ignacio和 MarkR也就是说,这意味着 CLOCK_REALTIME 可以随着系统时间时钟的更改(包括 NTP 更改)前后跳转。

CLOCK_MONOTONIC 表示自过去某个任意固定点以来经过的绝对挂钟时间。它不受系统时钟变化的影响。

如果您想计算在一台机器上观察到的两个事件之间的耗时而无需重新启动,CLOCK_MONOTONIC 是最佳选择。

请注意,在 Linux 上,CLOCK_MONOTONIC 不会测量挂起所花费的时间,尽管根据 POSIX 定义它应该这样做。您可以使用 Linux 特定的 CLOCK_BOOTTIME 作为在挂起期间保持运行的单调时钟。

https://stackoverflow.com/questions/3523442/

相关文章:

python - 使用 Python 的 os.path,我如何上一个目录?

python - 在 Python 中以编程方式生成视频或动画 GIF?

linux - 如何在 grep 中抑制二进制文件匹配结果

linux - 我可以用/etc/hosts 映射一个主机名*和*一个端口吗?

linux - 如何就地对文件进行排序?

python - 从 pandas.DataFrame 中选择复杂的标准

linux - 如何在linux中设置环境变量LD_LIBRARY_PATH

python - 如何检查我是否在 Python 中的 Windows 上运行?

python - Python 的 any 和 all 函数是如何工作的?

linux - 有没有办法按列 'uniq'?