在多线程环境中测量隔离时间

measuring wall time in a multi-threaded environment

本文关键字:隔离 时间 测量 多线程 环境      更新时间:2023-10-16

是否有一种方法可以以毫秒为分辨率测量多线程程序中两点之间的隔离时间?我熟悉boost time_t,但它的分辨率是秒,而不是毫秒。欢迎使用MKL库中的方法

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

(更新)

所谓的"壁时间",我假设你指的是两点之间实际经过的时间。如果您想要读取一天中的实际时间,请使用CLOCK_REALTIME而不是CLOCK_MONOTONIC。(不同之处在于,如果用户在测量过程中改变系统时钟,它们会如何表现。CLOCK_REALTIME会反映这种变化,而CLOCK_MONOTONIC则不会。)

(更新2)

c++ 11在std::chrono命名空间中为此提供了内置功能。因此,如果你有c++ 11,这是最可移植和面向未来的选择。