如何为特定命令计时?

rip*_*234 95 shell time-utility

(Linux 相当于 TimeThis.exe)

就像是:

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

wget foo.com took 3 seconds.
Run Code Online (Sandbox Code Playgroud)

mat*_*tdm 124

试试 justtime而不是timethis

但请注意,通常有一个 shell 内置版本的 time一个二进制版本,这将给出不同格式的结果:

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

real    0m0.178s
user    0m0.003s
sys     0m0.005s
Run Code Online (Sandbox Code Playgroud)

对比

$ \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
Run Code Online (Sandbox Code Playgroud)

与您的“timethis”程序不同,您会返回三个值。在命令行中使用“时间”时,在什么是“系统时间”中对此进行了细分,但简而言之:real表示“挂钟时间”,而usersys显示 CPU 时钟时间,分为常规代码和系统调用。


for*_*sck 34

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

/usr/bin/time --format='%C took %e seconds' sleep 3
sleep 3 took 3.00 seconds
Run Code Online (Sandbox Code Playgroud)

请注意,您必须为指定路径time,否则您将默认使用内置的 shell。您还可以使用command time\time来执行实用程序而不是内置程序。

  • 注意:路径很重要。不要只在 bash 中使用“时间”。相反,使用 /usr/bin/time (4认同)
  • 如果 `/usr/bin` 在他们的 PATH 中,有什么区别? (2认同)