it-swarm.cn

如何计时特定命令?

(相当于TimeThis.exe的Linux)

就像是:

timethis wget foo.com
Receiving foo.com  
...

wget foo.com took 3 seconds.
71
ripper234

仅尝试time而不是timethis

尽管请注意,通常会有Shell内置的时间版本二进制版本,它们会以不同的格式给出结果:

$ time wget -q -O /dev/null https://unix.stackexchange.com/

real    0m0.178s
user    0m0.003s
sys     0m0.005s

$ \time wget -q -O /dev/null https://unix.stackexchange.com/
0.00user 0.00system 0:00.17elapsed 4%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+613minor)pagefaults 0swaps

与“ timethis”程序不同,您可以返回三个值。这在 在命令行中使用“时间”时是“系统时间” 进行了细分,但总之:real的意思是“ wall-clock time”,而usersys显示CPU时钟时间,分为常规代码和系统调用。

103
mattdm

通过使用可执行文件time而不是内置的Shell,可以指定输出格式和值。例如。获取实际经过的时间以及命令名称和参数

/usr/bin/time --format='%C took %e seconds' sleep 3
sleep 3 took 3.00 seconds

请注意,您必须指定time的路径,否则您将默认使用内置的Shell。

26
forcefsck

@galois:各种shell具有少数“内置”命令,这些命令优先于路径中的任何命令。通常这是有利的。内置程序往往会运行得更快(因为不调用外部文件),并且通常会提供所需的结果(即,对于使用time命令的情况,您通常不在乎使用的是哪个版本,除非您要使用“ --format“标志)。

因此,“ time”没有任何特殊字符(例如/),使其看起来像路径将最终运行内置函数,而不管您的PATH是什么样子。

要强制命令行管理程序使用外部时间命令,必须提供路径

0
Tom Payerle