我使用/usr/bin/time程序来测量命令的时间。使用--format参数,我可以格式化输出。例如:
/usr/bin/time -f "%e" ls
有没有一种方法可以输出更准确的流逝秒数?或者只输出毫秒,而不是秒?
在/usr/bin/time的手册中,它只说了一些关于秒的东西,但也许有一种方法,有人可以帮助我……谢谢!
编辑时间:我知道bash命令“”,它使用环境变量"TIMEFORMAT“的格式。抱歉,我不想改变那个环境变量...对我来说似乎有风险,解决方案应该是根本不改变正在运行的系统的东西:)
发布于 2013-06-06 19:33:12
一种可能是使用date
命令:
ts=$(date +%s%N) ; my_command ; tt=$((($(date +%s%N) - $ts)/1000000)) ; echo "Time taken: $tt milliseconds"
%N
should return ,1毫秒等于1000000纳秒,因此除以将返回执行my_command
所用的时间(毫秒)。
发布于 2017-01-23 19:10:39
为了方便起见,我把devnull的答案写成了一个脚本(我把它命名为毫秒时间)。
#!/bin/bash
ts=$(date +%s%N) ; $@ ; tt=$((($(date +%s%N) - $ts)/1000000)) ; echo "Time taken: $tt milliseconds"
我将脚本放在/usr/local/bin
中。
给了它执行权限chmod +x /usr/local/bin/millisecond-time
。
现在我可以像这样使用它:millisecond-time my_command
附注:这将是一个评论,如果我有代表。
发布于 2021-01-08 10:18:46
在这个帖子中,有几件事会让人感到困惑。
Bash有一个内置的time
命令,它支持一个允许格式化输出的TIMEFORMAT
环境变量。有关这方面的详细信息,请运行man bash
并搜索TIMEFORMAT
。
还有一个标准的/usr/bin/time
命令行实用程序,它支持一个允许格式化输出的TIME
环境变量(或者您可以在命令行上使用-f
或--format
)。有关这方面的详细信息,请运行man time
并搜索TIME
。
如果您想要命令运行所用的秒数,您可以使用内置的bash命令(它支持最大精度为三位小数):
bash# export TIMEFORMAT="%3lR"
bash# time find /etc > /dev/null
0m0.015s
或者,您可以使用命令行实用程序(它支持最大精度为两位小数):
shell# export TIME="%E"
shell# /usr/bin/time find /opt/ > /dev/null
0:00.72
如上所述,这两个变量都不会被其他任何东西使用,也不能安全地更改。
https://stackoverflow.com/questions/16959337
复制相似问题