我如何解释“时间”命令的输出?

我如何解释“时间”命令的输出?
 time a.out 
 106.130u 0.000s 1:46.28 99.8%   0+0k 0+0io 83pf+0w

根据我对该man页面的理解:

  • 第一个值是代码执行开始和结束的时间,
  • 第二个值是在用户模式下花费的时间
  • 第三个处于内核模式

99.8% 是否表示在内核模式下花费的时间?

此外,这表明什么?

0+0k 0+0io 83pf+0w .

该程序执行肯定需要一分钟以上的时间——那么为什么第一个值这么小?

答案1

来自手册页:

默认格式为:

    %Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
    %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps

因此,在用户空间中花费了 106 秒,在内核空间中花费了 0 秒,1 分 46 秒为“实际”时间。

至于“为什么第一个值这么小”——事实并非如此。请注意,106 秒 == 60 秒 + 46 秒 == 1 分 46 秒,这是经过的时间。我没有看到那里有差异。

相关内容