0

伙计们。我对以下结果感到困惑:

1)。时间 xxxxx

 real 0m28.942s
 user 0m28.702s
 sys 0m0.328s

2)。/usr/bin/time -p xxxxx

real 28.48
user 0.00
sys 0.13

所以。我有一些问题(用户:0m28.702s != 0,系统:0m0.328s != 0.13):

  1. time 和 /usr/bin/time 有什么不同?
  2. 不同的cpu平台,单核还是多核有什么不同?

有什么建议吗?</p>

4

1 回答 1

1

使用以下方法很容易找到第一个问题的答案type

$ type time
time is a shell keyword
$ type /usr/bin/time
/usr/bin/time is /usr/bin/time

所以第一个命令使用内置的 bash,而后者则遵循外部程序。但是,不知道您使用的是什么系统,我不知道该程序来自哪里。在 Gentoo Linux 上,默认情况下没有/usr/bin/time,唯一可用的实现是具有不同输出的GNU time 。


也就是说,我尝试了一个类似于你的命令(假设它正在处理 1G 文件),并得到以下结果:

$ time sed -e 's/0//g' big-file > big-file2

real    0m40.600s
user    0m31.295s
sys     0m4.174s

$ /usr/bin/time sed -e 's/0//g' big-file > big-file2
35.06user 3.31system 0:40.58elapsed 94%CPU (0avgtext+0avgdata 3488maxresident)k
8inputs+2179176outputs (0major+276minor)pagefaults 0swaps

如您所见,数字相似。

然后,鉴于您的结果(0用户空间时间是完全不可能的),我会说您/usr/bin/time只是坏了。这可能值得向其作者报告错误。

于 2013-11-07T09:11:44.857 回答