其中计时功能,time
,clock
getrusage
,clock_gettime
,gettimeofday
和timespec_get
,我想清楚地了解它们是如何实现的,为了知道在什么情况下我必须使用他们什么是他们的返回值。
首先,我们需要对返回壁钟值的函数与返回进程或线程值的函数进行分类。gettimeofday
返回壁钟值,clock_gettime
返回壁钟值或进程或线程值,具体取决于Clock
传递给它的参数。getrusage
并clock
返回过程值。
然后,第二个问题涉及这些功能的实现以及结果的准确性。这些功能使用哪种硬件或软件机制。
似乎getrusage
只使用了内核滴答(通常为1ms长),结果比ms更加准确。这样对吗?然后,该getimeofday
功能似乎使用了最准确的基础硬件。结果,它的精度通常是最新硬件上的微秒(由于API而不能更高)。关于什么的clock
,关于“逼近”该名男子页讲,这是什么意思?怎么回事clock_gettime
,API只需十亿分之一秒,这是否意味着如果基础硬件允许的话,它就能如此精确?单调性如何?
还有其他功能吗?
clock_gettime
,因此使用的gettimeofday()
功能比clock_gettime()