我正在尝试测量通过命令行调用的流程的执行时间(即,我想找出流程完成需要多长时间)。我可以在命令中添加任何命令来实现此目的的过程吗?

#1 楼

在要测量的命令之前添加time。例如:time ls

输出将类似于:

real    0m0.606s
user    0m0.000s
sys     0m0.002s


realusersys的解释(来自man time):



real:进程使用的实际经过(挂钟)时间,以秒为单位。

user:进程占用的CPU秒总数直接在用户模式下使用(以秒为单位)。

sys:系统代表进程(在内核模式下)使用的CPU秒总数,以秒为单位。


评论


@ninjalj,您能否提供有关此命令返回的实际时间,用户时间和系统时间的更多信息?

–克里斯托弗·凯尔·霍顿(Christopher Kyle Horton)
2011年7月17日在20:22

@JacobVlijm这个答案不是那么详尽。 :)您可以在评论中进行编辑。

–muru
2015年2月13日在16:43

请注意,如果您使用的不是时间内置的shell,则可能需要sudo apt-get安装时间。

–池
16-10-26在16:45

请注意,这是Bash内置时间的输出,但人工时间将与可执行文件有关(如time包中的/ usr / bin / time),并且其输出看起来会有所不同。同样在Bash中,您可以运行帮助时间以获取内置帮助。

– wjandrea
19-3-25在21:08



请注意,过程结束并不意味着所有工作都已完成。在“时间”返回后,可能需要花费额外的几分钟来刷新系统缓冲(因此,系统时间也未分配)。

– ubfan1
19年6月23日在16:25

#2 楼

对于逐行增量测量,请尝试使用gnomon。

它是一个命令行实用工具,有点像moreutils的ts,可以在其他命令的标准输出前添加时间戳信息。对于需要长时间记录历史的长时间运行的进程很有用。
输液要gnomon的任何内容都会在每行前面加上时间戳,表明该行是缓冲区中的最后一行有多久了-也就是说,下一行显示需要多长时间。默认情况下,gnomon将显示每行之间经过的秒数,但这是可配置的。



评论


这很漂亮。

–内森·亚瑟(Nathan Arthur)
16 Sep 8 '21:53

(链接中的典型,幸运的是URL正常)。如果您有npm,则可以使用sudo npm i gnomon -g进行安装。不知道它对使用“ \ r”(保持在同一行)的“进行中”行的性能如何:在这种情况下,我希望将其全部计为一条长行,而不是单独的行。

– Tomasz Gandor
17年6月14日在21:42

因此,我们将其传送到gnomon!而已 ?

–Ciasto piekarz
18年5月15日在9:44

#3 楼

您可以使用time

time ls -R


#4 楼

date +"%T" && cp -r ./file  /destination/folder/here && date +"%T"


在终端中运行此命令将为您提供处理文件的总时间

评论


这将为您提供开始时间和结束时间,而不是持续时间。

– wjandrea
19-3-25在19:31



在某些情况下,这是一个很好的答案。例如,以下find命令(不使用2> / dev / null重定向)将提供大量“权限被拒绝”消息。但是,向该命令添加2> / dev / null会中断该命令的时间部分。以下是一个很好的折衷方案:START =“ $(date +”%s“)” &&查找2> / dev / null / -path / mnt -prune -o -name“ * libname-server-2.a *” -打印; END =“ $(日期+”%s“)”; TIME =“ $((END-START))”; printf'find命令花费%s秒\ n'“ $ TIME”,给出(例如)/ usr / lib / libname-server-2。find命令花费3秒作为唯一输出。

–维多利亚·斯图尔特(Victoria Stuart)
19年5月22日在3:45



我的评论的附录:当然,您可以简单地运行时间sudo find / -path / mnt -prune -o -name“ * libname-server-2.a *” -print(即,作为sudo)-避免那些大量许可被拒绝警告。

–维多利亚·斯图尔特(Victoria Stuart)
19年5月22日在16:04

#5 楼

有时候,我发现自己需要秒表来计算执行应用程序启动之类的操作所需的时间,在这种情况下,此处的许多解决方案都没有用。

为此,我喜欢使用sw。



安装

wget -q -O - http://git.io/sinister | sh -s -- -u https://raw.githubusercontent.com/coryfklein/sw/master/sw


用法

sw
 - start a stopwatch from 0, save start time in ~/.sw
sw [-r|--resume]
 - start a stopwatch from the last saved start time (or current time if no last saved start time exists)
 - "-r" stands for --resume


#6 楼

time -v command


-v提供了更多信息

#7 楼

1)打开bashrc文件

gedit ~\.bashrc


2)查找以下文本:

if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u@\h\[3[00m\] :\[3[01;34m\]\w\[3[00m\]$ ' 


3)并替换带有:

if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[3[01;32m\]\u\[3[00m\] [\d|\t]:\[3[01;34m\]\w\[3[00m\]$ ' 


4)重新启动端子以进行检查。

端子中的采样输出