TIME(1) | Руководство пользователя Linux | TIME(1) |
time - подсчитывает время выполнения простой команды или использования ресурсов
time [параметры] команда [аргументы...]
Программа time запускает указанную команду с заданными аргументами. Когда команда завершается, time выдаёт в стандартный вывод сообщений об ошибках статистическое сообщение об использованном времени при этом запуске. Эта статистика содержит (1) прошедшее реальное время между вызовом и завершением, (2) процессорное время работы в пользовательском пространстве (сумма значений tms_utime и tms_cutime из структуры struct tms, возвращаемой times(2)) и (3) процессорное время работы в системном пространстве (сумма значений tms_stime и tms_cstime из структуры struct tms, возвращаемой times(2)).
Замечание: некоторые командные интерпретаторы (например, bash(1)) имеют встроенную команду time, выводит похожую информацию и, возможно, другие ресурсы. Для работы с настоящей командой вам может потребоваться вызывать её по абсолютному имени (например, /usr/bin/time).
"real %f\nuser %f\nsys %f\n"
Если команда отработала, то возвращается её код результата (exit status). В противном случае он равен 27, если команда не найдена, 126 — если она найдена, но не может быть вызвана, и некоторому другому отличному от нуля значению (1–125), если произошли какие-либо другие ошибки.
Переменные LANG, LC_ALL, LC_CTYPE, LC_MESSAGES, LC_NUMERIC и NLSPATH при выводе и форматировании текста. Переменная PATH используется для поиска команды. Остальные — для форматирования и вывода текстового результата.
Ниже дано описание программы GNU time версии 1.7. Несмотря на тоже имя утилиты, GNU выводит большее количество полезной информации, не только об использованном времени, но также и о других ресурсах, таких как память, ввод/вывод и вызовы IPC (если возможно). Вывод создаётся с помощью строки форматирования, которую можно задать с помощью параметра -f или переменной окружения TIME.
По умолчанию строка форматирования имеет вид:
%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps
Если задан параметр -p, то используется переносимый формат вывода:
real %e user %U sys %S
Формат интерпретируется аналогично printf. Обычные символы просто копируются, табуляции, символы новой строки и обратная косая черта изолируются с помощью \t, \n и \\, знак процента указывается как %% и, наконец, % указывает на преобразование следующего за ним символа. Программа time всегда будет добавлять в начало вывода новую строку. Преобразования описаны ниже. Поддерживаются все параметры, имеющиеся в tcsh(1).
Время
Память
Ввод/вывод
Не все ресурсы могут быть измерены во всех версиях UNIX, поэтому некоторые значения могут быть показаны как нулевые. Отбор измеряемых ресурсов, в основном, проводился по данным, предоставляемым 4.2 или 4.3BSD.
Программа GNU time версии 1.7 пока не локализована. Таким образом, она не удовлетворяет требованиям POSIX.
Имя для переменной окружения TIME выбрано неосмотрительно. Есть вполне распространённая практика для систем, например autoconf(1) или make(1), использовать переменные окружения с именами утилит для замены используемой утилиты. Использование MORE или TIME в качестве параметров программ (вместо путей к программам) рано или поздно приведёт к проблемам.
Кажется неудачным, что -o выполняется перезапись вместо добавления. (То есть параметр -a должен бы использоваться по умолчанию.)
Советы и сообщения об ошибках по GNU time направляйте на bug-time@gnu.org. Указывайте версию time, которую можно узнать, запустив
time --version
а также операционную систему и компилятор C, который вы использовали.
2019-03-06 |