现代CPU在逐个内核的基础上改变CPU频率。我已经完成了我的研究,并且我发现很多人在谈论时钟因为这个而歪斜。我没有找到的是处理时钟偏移的好方法。什么是正确的方法(最好在Linux中)?cpu-throttling系统中时间测量的可靠方法是什么?
红利问题:如果系统在虚拟机内部运行,其中的任何变化如何?
现代CPU在逐个内核的基础上改变CPU频率。我已经完成了我的研究,并且我发现很多人在谈论时钟因为这个而歪斜。我没有找到的是处理时钟偏移的好方法。什么是正确的方法(最好在Linux中)?cpu-throttling系统中时间测量的可靠方法是什么?
红利问题:如果系统在虚拟机内部运行,其中的任何变化如何?
clock_gettime()
与CLOCK_MONOTONIC
不应该看到时钟歪斜。事实上,对于clock_gettime()
的Linux联机帮助页,只有文档CLOCK_PROCESS_CPUTIME_ID
和CLOCK_THREAD_CPUTIME_ID
受时钟歪斜的影响。
较新的芯片组包含解决此问题的高精度事件定时器(HPET)。如果您的操作系统支持HPET(例如Windows 7,Linux 2.6.27),那么关键的内核模式定时功能不应该存在歪斜问题。