Как измерить время выполнения терминального процесса?

133

Я пытаюсь измерить время выполнения процесса, который я вызываю через командную строку (т. е. хочу узнать, сколько времени потребуется для завершения процесса). Есть ли какая-либо команда, которую я могу добавить в команду, вызывающую процесс, который достигнет этого?

    
задан htorque 17.07.2011 в 12:26
источник

5 ответов

164

Добавьте команду time перед командой, которую вы хотите измерить.

Результат будет выглядеть так:

real    0m0.606s
user    0m0.000s
sys     0m0.002s

Объяснение на real , user и sys (%%_de%):

  • man time : Истекшее реальное (настенное время) время, используемое процессом, в секундах.
  • real : общее количество CPU-секунд, которое процесс использовал напрямую (в пользовательском режиме), в секундах.
  • user : общее количество секунд процессора, используемых системой от имени процесса (в режиме ядра), в секундах.
ответ дан ninjalj 17.07.2011 в 12:30
35

Для измерения дельта-строки по очереди попробуйте gnomon .

It is a command line utility, a bit like moreutils's ts, to prepend timestamp information to the standard output of another command. Useful for long-running processes where you'd like a historical record of what's taking so long.

Piping anything to gnomon will prepend a timestamp to each line, indicating how long that line was the last line in the buffer--that is, how long it took the next line to appear. By default, gnomon will display the seconds elapsed between each line, but that is configurable.

    
ответ дан Janus Troelsen 27.07.2016 в 10:45
24

Вы можете использовать time :

time ls -R
    
ответ дан William Niu 17.07.2011 в 12:30
5
date +"%T" && cp -r ./file  /destination/folder/here && date +"%T"

Запуск этой команды в терминале даст вам общее время для копирования файла

    
ответ дан user314473 11.08.2014 в 05:20
4

Иногда мне требуется секундомер, чтобы подсчитать, сколько времени требуется для такого действия, как загрузка моего приложения, и в этом случае многие из решений здесь не являются полезными.

Для этого мне нравится использовать sw .

Установка

wget-q-O-http://git.io/sinister|sh-s---uhttps://raw.githubusercontent.com/coryfklein/sw/master/sw

Использование

sw-startastopwatchfrom0,savestarttimein~/.swsw[-r|--resume]-startastopwatchfromthelastsavedstarttime(orcurrenttimeifnolastsavedstarttimeexists)-"-r" stands for --resume
    
ответ дан Cory Klein 23.06.2017 в 21:11