更有效地计算进程的运行时间

更有效地计算进程的运行时间

我需要在程序关闭后立即获取程序的运行时间,我想出了这个

start=`date +"%M"`
while [ `pgrep vlc` ];do
        echo vlcopen > /dev/null
done
stop=`date +"%M"`

[ $stop -lt $start ]&&time=$[ 60-$start+$stop ]||time=$[ $stop-$start ]
echo $time > time.txt

它可以完成工作,但是效率非常低,并且需要大量的杯子使用,我该如何更有效地做到这一点

答案1

一种选择是使用time

注意:Bash 有一个关键字,time因此如果您这样做:

time some command

那个被使用了, SHELL_GRAMMAR:bash

time在男人身上发现的time通常是这样的/usr/bin/time

$ type -t time
keyword

使用要点非bash时间是像-v(GNU time)这样的功能。

另请参阅:time(1) 的输出中“real”、“user”和“sys”是什么意思?

答案2

使用bashSECONDS变量:

SECONDS=0

# do stuff here, such as
sleep 5

duration=$SECONDS

echo "The stuff took $duration seconds to complete"

通过消除产生外部进程的需要来提高效率。

相关内容