프로세스의 실행 시간을 보다 효율적으로 계산

프로세스의 실행 시간을 보다 효율적으로 계산

프로그램이 닫히자마자 프로그램의 실행 시간을 확인해야 하는데 이런 생각이 들었습니다.

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: 배쉬

당신 time이 사람에게서 발견하는 time것은 대개 다음과 같습니다/usr/bin/time

$ type -t time
keyword

사용시 주요 포인트배쉬가 아닌-vtime은 (GNU ) 와 같은 기능입니다 time.

다음도 참조하세요.time(1)의 출력에서 ​​'real', 'user' 및 'sys'는 무엇을 의미합니까?

답변2

사용배쉬 SECONDS변수:

SECONDS=0

# do stuff here, such as
sleep 5

duration=$SECONDS

echo "The stuff took $duration seconds to complete"

외부 프로세스를 생성할 필요가 없어 효율성이 향상됩니다.

관련 정보