2012-10-18 143 views
0

提高計時器是否提供納秒分辨率的時間戳?如果是,如何獲得時間戳?通過Boost.Chrono以毫微秒的分辨率獲取時間戳

+0

正如你堅持。從Vista開始,通過使用HPET(高精度事件定時器),理論上可以獲得最佳效果。請參閱http://en.wikipedia.org/wiki/High_Precision_Event_Timer。問題是如何通過QueryPerformanceCounter()來獲取它,當在BIOS中可用並設置時使用HPET。 – SChepurin

+0

@Schepurin「自從Vista使用HPET以來,理論上可以獲得的最好結果」?爲什麼如果我的處理器與3.33 GHz工作,這是因爲它是操作系統中的fastes時鐘? – Narek

回答

2

納秒分辨率?你想在哪個硬件上運行你的程序? 在我的電腦上,我的表現計數器的頻率約爲。 4 Mhz,所以蜱持續250 ns。

As answered here,升壓計時器可以給你納秒分辨率,但是你不確定測量的精度。

+0

那麼如何知道我的性能計數器頻率?這是表示精度的唯一標準嗎? – Narek

+0

如@Schepurin所述,如果您在Windows上工作,QueryPerformanceFrequency()將檢索您的HPET的頻率時鐘(以Hz爲單位)。對於Linux,應該有一個等效的功能,但我不知道它的名字。欲瞭解更多信息:http://www.mindcontrol.org/~hplus/pc-timers.html – lucasg

+0

我的意思是,如果你的處理器是3.33GHz,它是不夠的獲得納秒時間?我們爲什麼要關注HPET的頻率? – Narek

1

爲了使用升壓計時器輕鬆獲取不同測量的時間戳,您可以使用boost CPU Timers。本網站還提供了關於計時器準確性的表格。

要在特定硬件上自己測量分辨率,請使用boost的cpu_timer_info.cpp

相關問題