现代CPU在逐个核心的基础上改变CPU频率。我做了我的研究,发现很多人都在谈论时钟因此而倾斜。我没有找到一个处理时钟偏差的好方法。这样做的正确方法是什么(最好是在Linux中)?
奖金问题:如果系统在VM内部运行,这会如何改变?
答案 0 :(得分:1)
clock_gettime()
的 CLOCK_MONOTONIC
不应该看到时钟偏差。实际上,clock_gettime()
的Linux联机帮助页仅将CLOCK_PROCESS_CPUTIME_ID
和CLOCK_THREAD_CPUTIME_ID
文档视为受时钟偏差的影响。
答案 1 :(得分:0)
较新的芯片组采用高精度事件定时器(HPET)来解决此问题。如果您的操作系统支持HPET(例如Windows 7,Linux 2.6.27),那么关键的内核模式时序功能不应该存在偏差问题。