現代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),那麼關鍵的內核模式定時功能不應該存在歪斜問題。