我已經寫了一個C++程序來打印兩個事件開始時的時間戳(或系統時間)。但這兩次的區別始終是0或15ms。這是因爲Windows XP計時器每秒更新64次,即每15.625ms更新一次。所以我沒有辦法知道0到15.625ms之間的任何延遲。如何在Windows XP上以比計時器滴答(15毫秒)更高的精度獲取時間?
有沒有辦法解決這個限制?
在此先感謝。
我已經寫了一個C++程序來打印兩個事件開始時的時間戳(或系統時間)。但這兩次的區別始終是0或15ms。這是因爲Windows XP計時器每秒更新64次,即每15.625ms更新一次。所以我沒有辦法知道0到15.625ms之間的任何延遲。如何在Windows XP上以比計時器滴答(15毫秒)更高的精度獲取時間?
有沒有辦法解決這個限制?
在此先感謝。
檢查出QueryPerformanceCounter以獲得更高的分辨率。
+'QueryPerformanceFrequency()'。 – 2013-02-27 10:14:54
所有這些時間我都在使用boost :: posix_time :: microsec_clock :: local_time()。 QueryPerformanceCounter + QueryPerformanceFrequency()服務我的代碼的目的!萬分感謝! – Vigo 2013-02-27 11:29:54
請注意,「QueryPerformanceCounter」在很長一段時間內不穩定。其他過去類似的問題(重複)涵蓋了這方面。 – 2013-02-27 13:28:33
您目前如何獲得時間戳? – Peopleware 2013-02-27 10:13:12
[Windows XP上的可靠高分辨率定時器]的可能重複(http://stackoverflow.com/questions/2274873/win32-api-timers/2274896#2274896)和[我如何以毫秒分辨率獲取Windows系統時間?](http://stackoverflow.com/questions/3729169/how-can-i-get-the-windows-system-time-with-millisecond-resolution) – 2013-02-27 13:01:48