伙计们。我对以下结果感到困惑:
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):
- time 和 /usr/bin/time 有什么不同?
- 不同的cpu平台,单核还是多核有什么不同?
有什么建议吗?</p>
使用以下方法很容易找到第一个问题的答案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只是坏了。这可能值得向其作者报告错误。