在计时函数中,time
、clock
getrusage
、clock_gettime
和gettimeofday
,timespec_get
我想清楚地了解它们是如何实现的以及它们的返回值是什么,以便知道我必须在什么情况下使用它们。
首先,我们需要将返回挂钟值的函数与返回进程或线程值的函数进行比较。gettimeofday
返回挂钟值,根据传递给它的参数clock_gettime
返回挂钟值或进程或线程值。并返回过程值。Clock
getrusage
clock
然后第二个问题是关于这些功能的实现以及它们的准确性。这些功能使用哪种硬件或软件机制。
似乎getrusage
只使用内核刻度(通常为 1ms 长),因此不能比 ms 更准确。这样对吗?然后该getimeofday
功能似乎使用了最准确的底层硬件。因此,在最近的硬件上,它的精度通常是微秒(由于 API 的原因不能更高)。怎么样clock
,手册页谈到“近似”,这是什么意思?那么clock_gettime
,API 是纳秒级的,是否意味着如果底层硬件允许它能够如此精确呢?单调性呢?
还有其他功能吗?