プロセスの実行時間をより効率的に計算する

プロセスの実行時間をより効率的に計算する

プログラムが閉じられたらすぐにその実行時間を取得する必要があり、これを思いつきました

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

使用上の主なポイント非バッシュ-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"

外部プロセスを生成する必要性を排除することで効率が向上します。

関連情報