- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当前 clock_nanosleep
在 Debian Jessie 上使用 CLOCK_MONOTONIC_RAW 返回 EOPNOTSUPP。
如何解决此问题并补偿可能应用于计时器循环中的 CLOCK_MONOTONIC 的可能的 NTP 调整?
clock_nanosleep
本身是否也受到 NTP 调整的影响?如果在 sleep 时进行调整,clock_nanosleep
的 sleep 时间会比预期的长吗?
在我的具体情况下,我是否应该担心可能的 CLOCK_MONOTONIC NTP 调整?考虑到我的代码将在没有实时时钟的系统上运行并且可能会不时断开 Internet 连接,NTP 对 CLOCK_MONOTONIC 应用的最大可能“时间跳跃”是多少?
说来话长。我正在使用一个简单的循环来模拟音频文件播放,我需要保持一致的播放位置。
clock_nanosleep
带有 TIMER_ABSTIME 标志似乎做得很好,但我不确定 CLOCK_MONOTONIC 是否足以避免播放位置出现明显跳跃。
这是我使用的代码:
clock_gettime(CLOCK_MONOTONIC, &deadline);
// run until asked to stop
while(!need_quit(stop_mutex_signal)) {
// do stuff ...
// add time ms to previous deadline
deadline.tv_nsec += device->periodTime * NANOSECONDS_PER_MILLISEC;
// normalize the time to account for the second boundary
if(deadline.tv_nsec >= NANOSECONDS_PER_SEC) {
deadline.tv_nsec -= NANOSECONDS_PER_SEC;
deadline.tv_sec++;
}
if(clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, &deadline, NULL) != 0)
{
// something happened - error or exit signal, cannot continue
return;
}
}
我很好奇,为什么 clock_nanosleep
中对 CLOCK_MONOTONIC_RAW 的支持还没有实现?这是否意味着 CLOCK_MONOTONIC 足以应对大多数情况,即使是音频/视频同步?
最佳答案
CLOCK_MONOTONIC
是单调的。它不受来自 ntp 或其他方式的任何跳跃的影响。它唯一受制于的漂移率调整通常由 ntpd 通过 adjtime
或类似方式完成。对于短时间间隔,此调整根本不可见。在任何情况下,只要您的系统没有被恶意配置,它就会比 CLOCK_MONOTONIC_RAW
更准确得多。例如(编造的数字,但它们可能在合理范围内)CLOCK_MONOTONIC_RAW
可能以每秒 999950000 纳秒的速率运行,CLOCK_MONOTONIC
以每秒 999950000 纳秒的速率运行每实际秒 1000001000 纳秒。
关于Clock_nanosleep() 尚不支持 CLOCK_MONOTONIC_RAW。如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39064160/
我需要面对一个架构/设计决策。 我正在开发一个 Cordova/Meteor 应用程序,它具有独特的入门体验。新用户会看到一个向导,引导他们完成填写某些表单的步骤。 向导流程会等到最后一步才能注册用户
我想通过 psql 在空数据库中加载一些 SQL 函数: psql -d my_database -f fuctions.sql --set ON_ERROR_STOP=1 我使用 --set ON_
我是一名优秀的程序员,十分优秀!