2013-02-27 29 views
0

我已經寫了一個C++程序來打印兩個事件開始時的時間戳(或系統時間)。但這兩次的區別始終是0或15ms。這是因爲Windows XP計時器每秒更新64次,即每15.625ms更新一次。所以我沒有辦法知道0到15.625ms之間的任何延遲。如何在Windows XP上以比計時器滴答(15毫秒)更高的精度獲取時間?

有沒有辦法解決這個限制?

在此先感謝。

+0

您目前如何獲得時間戳? – Peopleware 2013-02-27 10:13:12

+1

[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

回答

3

檢查出QueryPerformanceCounter以獲得更高的分辨率。

+1

+'QueryPerformanceFrequency()'。 – 2013-02-27 10:14:54

+0

所有這些時間我都在使用boost :: posix_time :: microsec_clock :: local_time()。 QueryPerformanceCounter + QueryPerformanceFrequency()服務我的代碼的目的!萬分感謝! – Vigo 2013-02-27 11:29:54

+0

請注意,「QueryPerformanceCounter」在很長一段時間內不穩定。其他過去類似的問題(重複)涵蓋了這方面。 – 2013-02-27 13:28:33