die Laufzeit eines Prozesses effizienter berechnen

die Laufzeit eines Prozesses effizienter berechnen

ich muss die Laufzeit eines Programms ermitteln, sobald es geschlossen ist, und ich habe mir Folgendes ausgedacht

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

und es macht den Job, aber es ist sehr ineffizient und braucht viel Tassennutzung. Wie mache ich das effizienter?

Antwort1

Eine Möglichkeit besteht darin,time

Hinweis: Bash verfügt über ein Schlüsselwort. timeWenn Sie dies tun:

time some command

dieser wird verwendet, SHELL_GRAMMAR: bash

Das, was timeman bei Männern findet, timeist normalerweise so etwas wie/usr/bin/time

$ type -t time
keyword

Hauptpunkt bei der Verwendung dernicht bashZeit ist Funktionen wie -v(GNU time).

Siehe auch:Was bedeuten 'real', 'user' und 'sys' in der Ausgabe von time(1)?

Antwort2

Verwenden Sie dieBash SECONDS-Variable:

SECONDS=0

# do stuff here, such as
sleep 5

duration=$SECONDS

echo "The stuff took $duration seconds to complete"

Die Effizienz wird gesteigert, da keine externen Prozesse mehr erstellt werden müssen.

verwandte Informationen