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


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


129
2017-07-17 12:26


происхождения




ответы:


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

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

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

Объяснение real, user а также sys (из man time):

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

159
2017-07-17 12:30



@ninjalj, можете ли вы предоставить дополнительную информацию о том, что real, user, а также sys раз, что эта команда возвращается? - Christopher Kyle Horton
@JacobVlijm Этот ответ не так уж и сложный. :) Вы можете отредактировать в своем комментарии и сделать это так. - muru
Обратите внимание, что вам может понадобиться sudo apt-get install time если вы используете оболочку, где time не является встроенным. - poolie


Для измерения дельта-линии по очереди попробуйте гномон,

Это утилита командной строки, немного напоминающая tututils, чтобы добавить информацию о метке времени к стандартным выводам другой команды. Полезно для длительных процессов, в которых вы хотели бы исторический отчет о том, что так долго.

Трубопровод в gnomon добавит временную метку к каждой строке, указав, как долго эта строка была последней строкой в ​​буфере - то есть, сколько времени потребовалось, чтобы появилась следующая строка. По умолчанию gnomon будет отображать секунды, прошедшие между каждой строкой, но это настраивается.

gnomon demo


32
2017-07-27 10:45



Это довольно пятно. - Nathan Arthur
(опечатка в ссылке, к счастью, URL ok). Вы можете установить его с помощью sudo npm i gnomon -g если у вас есть npm, Не уверен, насколько хорошо он работает с линиями «прогресса», используя «\ r» (оставаясь в одной строке): в этом случае я бы хотел, чтобы все это считалось одной длинной строкой, а не отдельными. - Tomasz Gandor
так что мы прокладываем его до гномона! это оно ? - Ciasto piekarz


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

time ls -R

22
2017-07-17 12:30





date +"%T" && cp -r ./file  /destination/folder/here && date +"%T"

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


5
2017-08-11 05:20





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

Для этого мне нравится использовать ЮЗ,

sw

устанавливать

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

Применение

sw
 - start a stopwatch from 0, save start time in ~/.sw
sw [-r|--resume]
 - start a stopwatch from the last saved start time (or current time if no last saved start time exists)
 - "-r" stands for --resume

4
2018-06-23 21:11