2011-10-03 54 views
0

有沒有一種方法可以在毫秒分辨率下測量多線程程序中兩點之間的牆壁時間?我熟悉boost time_t,但它的分辨率是秒,而不是毫秒。歡迎來自MKL圖書館的方法。在多線程環境下測量牆壁時間

+0

有幾個平臺特定的解決方案可用,所以請指定你的。 –

+0

如果你正在測量牆面時間,那麼你的程序是多線程的事實應該沒有關係。時鐘應該從任何線程讀取相同的內容。 –

+0

科學的linux – Tarek

回答

3

在任何現代POSIX系統(如Linux)上,請撥打clock_gettimeCLOCK_MONOTONIC

[更新]

通過「掛鐘時間」,我假設你的意思的時候,實際上兩個點之間經過。如果您的意思是讀取一天中的實際時間,請使用CLOCK_REALTIME而不是CLOCK_MONOTONIC。 (所不同的是它們的行爲,如果用戶應該在測量過程中間改變系統時鐘。CLOCK_REALTIME將反映這種變化而CLOCK_MONOTONIC不會。)

[更新2]

C++ 11具有爲此在std::chrono namespace內置設施。所以,如果你有C++ 11,那是最便攜的和麪向未來的選擇。