当我使用time
命令测量某个进程的不同执行时间(在不同的硬件环境下)时,遇到了一个我不理解的现象。
real time
第一次执行的时间为77 minutes
,82 minutes
第二次执行的时间为。但是,user time
第二次执行的时间为 6 分钟,同样,sys time
第二次执行的时间为 1 分钟。
第一次执行的实际时间怎么会更好呢?
比较执行时间时,这 3 个时间中的哪一个是流程总体执行时间的良好指标?(我有一些打印出大量信息的流程和不打印任何信息的流程,如果这有什么区别的话)
答案1
如果我没记错的话:
real time
表示时钟时间:它是进程运行所需的时间。此时间取决于系统上运行的进程数,因此这也许可以解释为什么实时在首次执行时更好。user time
表示归因于用户指令的 CPU 时间量。(用户模式,内核之外)sys time
是 CPU 在运行进程期间在内核中花费的时间量。例如,每当您使用read
或write
方法时,在内核中执行此“服务”所花费的时间都计入此时间。
因此,在比较一般执行时间时,您可以使用user time + sys time
。
希望这可以帮助。