在许多系统上,RUSAGE(我想是ru_utime
和ru_stime
)是无法准确计算的,每个时钟滴答仅采样一次,通常慢至100Hz,有时甚至更慢。
这样做的主要原因是,许多机器读取的时钟都非常昂贵,并且您不想执行此操作(每次系统调用都必须读取两次时钟)。与在执行许多系统调用的程序中执行其他任何操作相比,您可能很容易最终花费更多的时间读取时钟。
计数器永远不应该倒退。我已经看到很多年前,在上下文切换中跟踪了该过程的总运行时间(这相对便宜,getrusge可以通过使用stime样本来计算utime,并从总运行时间中减去它)。在这种情况下,使用的时钟是墙上时钟,而不是单调时钟;当您更改机器上的时间时,进程的运行时间可能会倒退。但这当然是一个错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句