Обзор
Команда time измеряет время выполнения определенной программы или скрипта и предоставляет подробную статистику использования ресурсов, такую как время ЦП пользователя, время ЦП системы и фактическое прошедшее время. Это помогает выявить узкие места в производительности приложений.
Основные измеряемые показатели
- Фактическое время (Real time): Реальное прошедшее время с момента запуска команды до ее завершения
- Время ЦП пользователя (User CPU time): Время, затраченное ЦП на выполнение команды в пользовательском режиме
- Время ЦП системы (System CPU time): Время, затраченное ЦП на выполнение команды в режиме ядра
Основные опции
Команда time позволяет управлять форматом вывода или запрашивать дополнительную информацию с помощью различных опций.
Формат вывода и управление
Сгенерированная команда:
Комбинируйте команды.
Описание:
`time` Запускает команду.
Комбинируйте эти опции, чтобы виртуально выполнять команды с помощью ИИ.
Примеры использования
Базовое использование
time ls
Измеряет время выполнения команды ls.
Вывод в формате POSIX
time -p sleep 1
Выводит время выполнения команды sleep в формате, совместимом с POSIX.
Сохранение результатов измерений в файл
time -o time_output.txt -a ls -l
Сохраняет результаты измерений команды ls -l в файл time_output.txt. Вывод команды time направляется в стандартный поток ошибок, поэтому используется 2>.
Вывод в пользовательском формате
time -f "Real: %e User: %U System: %S" sleep 1.5
Выводит фактическое время, время ЦП пользователя и время ЦП системы в указанном формате.
Советы и примечания
Важные моменты и дополнительные советы при использовании команды time.
Встроенная команда time оболочки и внешняя команда time
Оболочки, такие как bash или zsh, имеют собственную встроенную команду time. Обычно она выводит только три значения: real, user, sys, и ее функциональность ограничена по сравнению с внешней командой time (/usr/bin/time). Для получения более подробной информации необходимо явно вызывать внешнюю команду time.
Явное использование внешней команды time
\time sleep 1
/usr/bin/time sleep 1
Чтобы использовать внешнюю команду time, а не встроенную команду оболочки, добавьте обратную косую черту (\time) или укажите полный путь.
Точность измерений
- Для очень коротких команд (в миллисекундах) погрешность измерений может быть значительной.
- Результаты измерений могут варьироваться в зависимости от текущей загрузки системы, поэтому для точных измерений рекомендуется повторять команду несколько раз и усреднять значения.
Перенаправление вывода
Вывод команды time направляется в стандартный поток ошибок (stderr). Поэтому для перенаправления результатов измерений time в файл необходимо использовать 2> или 2>>. Например, `time ls 2> time_result.txt` отобразит вывод ls на экране, а результаты time сохранит в файл.