我在clock_gettime
可以訪問不同的時鐘有困難。尤其是我感興趣的是:理解問題clock_gettime
CLOCK_REALTIME
CLOCK_PROCESS_CPUTIME_ID
CLOCK_THREAD_COUTIME_ID
我讀了手冊頁,但它並沒有幫助我非常多。我使用clock_gettime
爲通過套接字發送收集的數據時爲我的分析器生成時間戳。我注意到以下區別:
CLOCK_REALTIME
我從分析器收到這個時鐘的事件有時,在一個錯誤的順序。時間戳以較高的值開始,但不是非常高。通常最後的消息(具有較高時間戳的消息)首先出現,而後面的消息具有較低的值。
CLOCK_PROCESS_CPUTIME_ID
CLOCK_THREAD_COUTIME_ID
我發現了兩個時鐘沒有什麼區別,雖然他們開始與一個更低的值,總是正確排序。
我無法解釋這種行爲。
我可以猜測CLOCK_REALTIME被重置嗎?這是我用這個時鐘得到的錯誤順序的唯一解釋。 – 2011-05-08 23:42:06
在Linux上,CLOCK_REALTIME和CLOCK_MONOTONIC由於系統時間調整而受到不連續性的影響,例如,由ntpd。使用CLOCK_MONOTONIC_RAW獲取實際保證不會及時倒退的定時器。 – 2012-02-16 06:00:39
@BDatRivenhill +1有助於解決我的消極時間流逝問題 – kfmfe04 2012-12-07 04:49:04