Linux时间命令输出中的差异

时间:2011-06-16 06:21:00

标签: linux time

我知道time命令的输出可以在user部分显示比real部分更多的时间用于多处理器的情况,但最近,我试图当我看到real远远大于user + sys时,会对程序进行个人资料。

$ time ./test.o

real    0m5.576s
user    0m1.270s
sys     0m0.540s

有人可以解释为什么会造成这种行为吗?

3 个答案:

答案 0 :(得分:8)

这是正常行为。

“真实”是挂钟时间。在你的例子中,运行'./test.o'

需要5.576秒

'user'是用户CPU时间,或(大致)用户空间进程使用的CPU时间。这基本上是你的CPU花在实际执行'./test.o'上的时间。 1.270秒。

最后,'sys'是系统CPU时间,或者(大致)内核使用的CPU时间。 0.540秒。

如果添加sys + user,则会获得CPU执行程序所花费的时间。

real - (user + sys)是运行程序的时间。在调用和终止运行程序之间花费了3.766秒 - 可能正在等待CPU完成运行其他程序,等待磁盘I / O等。

答案 1 :(得分:4)

您的进程花费的时间(例如,等待I / O)不会被“用户”或“系统”计算,但“实际”时间仍然过去。

尝试:

time cat

...然后等待10秒并点击ctrl-D。

答案 2 :(得分:1)

至少有两种可能性:

  • 系统正忙于其他竞争流程
  • 程序正在沉睡,或正在进行其他操作导致它等待,如i / o(等待用户输入,磁盘i / o,网络i / o等)。