如何在zsh中获取命令的执行毫秒时间?

acg*_*ant 6 zsh time

time只打印的命令的执行第二次。

如果有像 IPython 强大的timeit魔法命令这样的解决方案,那就太好了。

Spa*_*awk 10

zsh 的time使用TIMEFMT变量来控制格式。默认情况下,这是%J %U user %S system %P cpu %*E total,它产生以下内容。

$ time sleep 2
sleep 2 0.00s user 0.00s system 0% cpu 2.002 total
Run Code Online (Sandbox Code Playgroud)

确实产生了毫秒精度(至少对于total),所以也许您的系统具有不同的默认设置(滞后发行版?),或者已经修改了TIMEFMT.

查看手册页了解可能的格式。我在以下内容中使用~/.zshrc

TIMEFMT=$'\n================\nCPU\t%P\nuser\t%*U\nsystem\t%*S\ntotal\t%*E'
Run Code Online (Sandbox Code Playgroud)

产生以下内容。

$ time sleep 2 

================
CPU     0%
user    0.003
system  0.000
total   2.006
Run Code Online (Sandbox Code Playgroud)