我知道 time(1) 报告在用户空间、内核空间中运行某些内容所需的时间。此外,它还显示挂钟时间。后者大约是前两者的总和。
当我查看图 15.29 UNIX 环境中的高级编程时。它比较了几种利用共享资源的方法所花费的时间。我注意到时钟不是用户和系统的总和。 。
如果 Clock 略大于 User 和 System 的总和,那是合理的,因为没有测量上下文切换的时间(也许?),但第二行表明 Clock 时间远小于两者的总和.
要么作者没有使用
time(1)
作为基准,要么我误解了这个概念。
有人可以解释一下吗?
“用户”和“系统”时间是程序在单核上活动的时间。另一方面,“时钟”时间是所有内核的挂钟时间。因此,当在多核计算机上运行时,您很容易遇到“用户”和“系统”时间之和大于“时钟”时间的情况 - 这仅意味着您同时使用多个核心。另一方面,当“时钟”较大时,这意味着内核有空闲时间。