首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >/usr/bin/time --以毫秒为单位的输出时间格式

/usr/bin/time --以毫秒为单位的输出时间格式
EN

Stack Overflow用户
提问于 2013-06-06 18:09:02
回答 3查看 26.5K关注 0票数 36

我使用/usr/bin/time程序来测量命令的时间。使用--format参数,我可以格式化输出。例如:

代码语言:javascript
复制
/usr/bin/time -f "%e" ls

有没有一种方法可以输出更准确的流逝秒数?或者只输出毫秒,而不是秒?

在/usr/bin/time的手册中,它只说了一些关于秒的东西,但也许有一种方法,有人可以帮助我……谢谢!

编辑时间:我知道bash命令“”,它使用环境变量"TIMEFORMAT“的格式。抱歉,我不想改变那个环境变量...对我来说似乎有风险,解决方案应该是根本不改变正在运行的系统的东西:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-06 19:33:12

一种可能是使用date命令:

代码语言:javascript
复制
ts=$(date +%s%N) ; my_command ; tt=$((($(date +%s%N) - $ts)/1000000)) ; echo "Time taken: $tt milliseconds"

%N should return ,1毫秒等于1000000纳秒,因此除以将返回执行my_command所用的时间(毫秒)。

请注意, %N is not supported on all systems, but most of them.

票数 46
EN

Stack Overflow用户

发布于 2017-01-23 19:10:39

为了方便起见,我把devnull的答案写成了一个脚本(我把它命名为毫秒时间)。

代码语言:javascript
复制
#!/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

附注:这将是一个评论,如果我有代表。

票数 8
EN

Stack Overflow用户

发布于 2021-01-08 10:18:46

在这个帖子中,有几件事会让人感到困惑。

Bash有一个内置的time命令,它支持一个允许格式化输出的TIMEFORMAT环境变量。有关这方面的详细信息,请运行man bash并搜索TIMEFORMAT

还有一个标准的/usr/bin/time命令行实用程序,它支持一个允许格式化输出的TIME环境变量(或者您可以在命令行上使用-f--format )。有关这方面的详细信息,请运行man time并搜索TIME

如果您想要命令运行所用的秒数,您可以使用内置的bash命令(它支持最大精度为三位小数):

代码语言:javascript
复制
bash# export TIMEFORMAT="%3lR" 
bash# time find /etc > /dev/null
0m0.015s

或者,您可以使用命令行实用程序(它支持最大精度为两位小数):

代码语言:javascript
复制
shell# export TIME="%E"
shell# /usr/bin/time find /opt/ > /dev/null
0:00.72

如上所述,这两个变量都不会被其他任何东西使用,也不能安全地更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16959337

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档