calcular o tempo de execução de um processo de forma mais eficiente

calcular o tempo de execução de um processo de forma mais eficiente

preciso obter o tempo de execução de um programa assim que ele é fechado e descobri isso

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

e faz o trabalho, mas é altamente ineficiente e exige muito uso do copo, como faço isso com mais eficiência

Responder1

Uma opção é usartime

Nota: Bash tem uma palavra-chave, timeentão se você fizer isso:

time some command

aquele é usado, SHELL_GRAMMAR: bash

O que timevocê encontra no homem timegeralmente é algo como/usr/bin/time

$ type -t time
keyword

Ponto principal no uso donão bashtime são recursos como -v(GNU time).

Veja também:O que significam 'real', 'user' e 'sys' na saída de time(1)?

Responder2

Use oSECONDSvariável bash:

SECONDS=0

# do stuff here, such as
sleep 5

duration=$SECONDS

echo "The stuff took $duration seconds to complete"

A eficiência é obtida eliminando a necessidade de gerar processos externos.

informação relacionada