在Linux中测量时间-时间vs时钟vs getrusage vs clock_gettime

其中计时功能,time,clock getrusage,clock_gettime,gettimeofday和timespec_get,我想清楚地了解它们是如何实现的,为了知道在什么情况下我必须使用他们什么是他们的返回值。


首先,我们需要对返回壁钟值的函数与返回进程或线程值的函数进行分类。gettimeofday返回壁钟值,clock_gettime返回壁钟值或进程或线程值,具体取决于Clock传递给它的参数。getrusage并clock返回过程值。


然后,第二个问题涉及这些功能的实现以及结果的准确性。这些功能使用哪种硬件或软件机制。


似乎getrusage仅使用内核滴答(通常为1ms),结果比ms更准确。这样对吗?然后,该getimeofday功能似乎使用了最准确的基础硬件。因此,其精度在最近的硬件上通常为微秒(由于API而不能更高)。关于什么的clock,这名男子页关于“逼近”说,这是什么意思?怎么回事clock_gettime,API只需十亿分之一秒,是否意味着如果底层硬件允许的话,它就能如此精确?单调呢?


还有其他功能吗?


杨魅力
浏览 1172回答 3
3回答

牧羊人nacy

对于Android用户,使用CLOCK_MONOTONIC可能会出现问题,因为该应用可能会随着时间的推移而被挂起。为此,Android添加了可通过ioctl访问的ANDROID_ALARM_ELAPSED_REALTIME计时器。有关这些信息以及其他与暂停相关的信息
打开App,查看更多内容
随时随地看视频慕课网APP