c++ 理解clock_gettime()的不同时钟,

嗨,我想使用clock_gettime()函数来测量我的代码的性能。

我不能从手册页描述中了解在函数中使用的不同种类的时钟之间的区别。尤其是

CLOCK_REALTIME,

CLOCK_PROCESS_CPUTIME_ID

CLOCK_THREAD_CPUTIME_ID

有人可以解释这些时钟的每一个吗?

CLOCK_REALTIME报告实际挂钟时间。

CLOCK_MONOTONIC用于测量相对实时。它以与实际时间流速相同的速率前进,但不会受到手动或自动(NTP)对系统时钟的调整的不连续性。

CLOCK_PROCESS_CPUTIME_ID用于测量进程消耗的CPU时间量。

CLOCK_THREAD_CPUTIME_ID用于测量线程消耗的CPU时间量,但Linux不支持。 glibc通过简单地返回自创建线程以来的进程所消耗的CPU时间来模拟它。

更新:似乎现代内核和glibc现在支持CLOCK_THREAD_CPUTIME_ID正确。我没有细节,当它被固定了。

http://stackoverflow.com/questions/7506952/understanding-the-different-clocks-of-clock-gettime

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c++ 理解clock_gettime()的不同时钟,