2011-10-03 63 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,那是最便携的和面向未来的选择。