更有效地計算進程的運行時間

更有效地計算進程的運行時間

我需要在程式關閉後立即獲取程式的運行時間,我想出了這個

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"

透過消除產生外部進程的需要來提高效率。

相關內容