gpt4 book ai didi

Linux clock_gettime(CLOCK_MONOTONIC) 奇怪的非单调行为

转载 作者:IT王子 更新时间:2023-10-29 00:13:35 40 4
gpt4 key购买 nike

伙计们,在我的应用程序中,我正在使用 clock_gettime(CLOCK_MONOTONIC) 来测量帧之间的增量时间(gamedev 中的一种典型方法),我不时会遇到一个奇怪的问题clock_gettime(..) 的行为 - 返回值有时不是单调的(即上一个时间大于当前时间)。

目前,如果发生这样的悖论,我只是跳过当前帧并开始处理下一帧。

问题是这怎么可能呢?它是 clock_gettime 的 Linux POSIX 实现中的错误吗?我使用的是 Ubuntu 服务器版 10.04(内核 2.6.32-24、x86_64)、gcc-4.4.3。

最佳答案

man clock_gettime 说:

CLOCK_MONOTONIC_RAW (since Linux 2.6.28; Linux-specific)

Similar to CLOCK_MONOTONIC, but provides access to a raw hardware-based time that is not subject to NTP adjustments.

由于 CLOCK_MONOTONIC_RAW 不是 NTP 调整的主题,我想 CLOCK_MONOTONIC 可能是。

我们在使用 2.6.18 内核和某些特定 Itanium 处理器的 Redhat Enterprise 5.0 时遇到了类似的问题。我们无法在同一操作系统上使用其他处理器重现它。它在 RHEL 5.3 中得到修复,内核稍新一些,还有一些 Redhat 补丁。

关于Linux clock_gettime(CLOCK_MONOTONIC) 奇怪的非单调行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3657289/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com