在多线程环境中测量墙壁时间

时间:2011-10-03 15:43:09

标签: c++ linux

有没有办法以毫秒分辨率测量多线程程序中两点之间的挂壁时间?我熟悉boost time_t,但它的分辨率是秒,而不是毫秒。欢迎来自MKL库的方法。

1 个答案:

答案 0 :(得分:3)

在任何现代POSIX系统(如Linux)上,使用CLOCK_MONOTONIC致电clock_gettime

[更新]

通过“壁垒时间”,我假设你指的是两点之间实际经过的时间。如果您的意思是阅读实际的时间,请使用CLOCK_REALTIME代替CLOCK_MONOTONIC。 (不同之处在于,如果用户在测量过程中更改系统时钟,他们的行为方式。CLOCK_REALTIME将反映出CLOCK_MONOTONIC不会发生的变化。)

[更新2]

C ++ 11在std::chrono namespace中具有内置功能。因此,如果你有C ++ 11,那么这是最便携和面向未来的选择。