Утилита time измеряет время выполнения отдельной программы и затраченное на ее выполнение время ЦП.
time позволяет просмотреть параметры производительности отдельной программы и ее дочерних процессов, работающих в синхронном режиме. Она показывает время, прошедшее с момента запуска до завершения работы программы, то есть фактическое время. Кроме того, она показывает, сколько времени процессор затратил на выполнение этой программы. Время процессора делится на две категории: пользовательское и системное.
Пользовательское время - это время выполнения самой программы и всех вызовов библиотечных функций. Системное время - это время обработки вызванных программой (напрямую или косвенно) системных процедур и функций.
В сумме пользовательское и системное время дают общее время процессора, затраченное на выполнение программы. Сюда не входит обработка процессором компонентов ядра, которые могут быть запущены в ходе выполнения программы, но в настоящее время не запущены в данной нити. Например, захват страниц физической памяти для замещения страниц, полученных из списка свободных страниц при запуске программы, не учитывается при подсчете времени процессора, затраченного на выполнение программы.
$ man 1 time
Если вы используете командной оболочки Основы BASH скрипты, циклы, горячие клавиши, то вы должны помнить, что в bash существует одноименная функция time. И значит, в случае оболочки bash необходимо использовать явный путь для запуска /usr/bin/time .
Найти путь к истинной команду time
$ which time /usr/bin/time
Для вывода реального физического времени, которое прошло с момента запуска команды до момента её выполнения используйте утилиты time с отформатированным выводом
# /usr/bin/time -f %E wc /var/log/syslog 1>/dev/null 0:00.02
-f %E — задает формат вывода для time (E = реальное время, % — метасимвол).
Вывод time утилиты для bash:
# time cat /var/log/syslog
real 0m0.158s
user 0m0.000s
sys 0m0.015s
где,
ключ -p заставляет использовать традиционный формат времени (с цифрами в секундах)
# time -p cat /var/log/syslog real 0.04 user 0.01 sys 0.00
Записывать вывод в файл time.log:
$ /usr/bin/time -o time.log ping wow2.top ... # cat time.log 0.00user 0.00system 0:05.56elapsed 0%CPU (0avgtext+0avgdata 2804maxresident)k 568inputs+0outputs (3major+137minor)pagefaults 0swaps