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