TIME(1) | General Commands Manual | TIME(1) |
time - запускает программы и показывает справку по использованным системным ресурсам
time запускает программу COMMAND с любыми заданными аргументами ARG.... Когда COMMAND завершится, time отобразит информацию о ресурсах, используемых COMMAND (по умолчанию в стандартном выводе ошибки). Если COMMAND завершает работу с ненулевым результатом, time отображает предупреждающее сообщение и код результата.
time определяет, какую информацию о ресурсах, используемых COMMAND, отображать из строки FORMAT. Если в командной строке формат не указан, но задана переменная окружения TIME, в качестве формата используется ее значение. В противном случае используется формат по умолчанию, встроенный в time.
Параметры для time должны быть в командной строке перед COMMAND. Все, что находится в командной строке после COMMAND, передается в качестве аргументов COMMAND.
(прим. пер.: real — это wall clock время, т.е. время, которое реально прошло от старта программы до окончания ее работы; user — процессорное время в пространстве пользователя, т.е. время, которое процессор фактически потратил на выполнение заданного кода в пространстве пользователя; sys — процессорное время в пространстве ядра.)
Строка
формата FORMAT
управляет
содержимым
вывода time .
Строка
формата
может быть
задана с
помощью
параметров
`-f' или `--format', либо
`-v' или `--verbose', либо
`-p' или `--portability'.
Если они не
given, but the TIME , то ее
значение
используется
в качестве
строки
формата. В
противном
случае
используется
встроенный
формат по
умолчанию.
Формат по
умолчанию
следующий:
%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps
(прим. пер.:
авторское
форматирование
цинично
сохранено)
Строка формата обычно состоит из "спецификаторов ресурсов" внутри обычного текста. Знак процента (`%')) в строке формата приводит к тому, что следующий символ интерпретируется как спецификатор ресурса по аналогии с символами форматирования в функции printf(3).
Обратная косая черта (`\') предваряет "экранирование обратной косой черты", которое преобразуется в один печатный символ при выводе. `\t' выводит символ табуляции, `\n' выводит новую строку, а `\\' выводит обратную косую черту. Обратная косая черта, за которой следует любой другой символ, выводит вопросительный знак (`?'), за которым следует обратная косая черта, указывающая на то, что был задан недопустимый экранирующий символ обратной косой черты.
Другой текст в строке формата копируется в вывод буквально. time всегда переходит на новую строку после печати информации об использовании ресурса, поэтому обычно форматируемые строки не заканчиваются символом новой строки (или `\n').
Существует множество спецификаций ресурсов. Не любой ресурс может быть измерен всеми версиями Unix, поэтому некоторые значения могут быть указаны как нулевые. Любой символ, следующий за знаком процента, которого нет в таблице ниже, приводит к выводу вопросительного знака (`?'), за которым следует этот символ, указывающий на то, что был задан недопустимый спецификатор ресурса.
Спецификаторами ресурсов, которые являются надмножеством тех, которые распознаются встроенной в tcsh(1) командой `time', являются:
Запустить
команду `wc /etc/hosts'
и
отобразить
информацию
по
умолчанию:
time wc /etc/hosts
Запустить
команду `ls -Fs' и
показать
только
процессорное
время в
пространстве
пользователя
(user), тоже в
пространстве
ядра (sys) и
общее
время (real):
time -f "\t%E real,\t%U user,\t%S sys" ls -Fs
Редактировать
файл BORK и
добавить
прошедшее
время и
количество
сигналов,
выведенное
`time', в файл `log',
считав
строку
формата из
переменной
окружения
`TIME':
export TIME="\t%E,\t%k" # Для bash or ksh
setenv TIME "\t%E,\t%k" # Для csh or tcsh
time -a -o log emacs bork
Пользователям
оболочки bash
необходимо
использовать
явный путь
для
запуска
внешней
команды time ,
иначе
запустится
встроенную
в оболочку
команда. В
системе,
где time
устанавливается
в /usr/bin, первый
пример
будет
таким
/usr/bin/time wc /etc/hosts (прим.
пер.:
авторское
форматирование
цинично
сохранено)
Прошедшее время не собирается атомарно при выполнении программы. В результате, при необычных обстоятельствах (если команда time останавливается или уходит в подкачку в промежутке между моментом завершения программы, для которой выполняется синхронизация, и моментом, когда time вычисляет, сколько времени потребовалось для запуска), это время может быть намного больше, чем фактическое время выполнения.
Когда время выполнения команды очень близко к нулю, некоторые значения (например, процент использования процессора) могут отображаться либо как ноль (что неверно), либо как знак вопроса.
Большая часть информации, отображаемой time, получена из системного вызова wait3(2). Поэтому корректность чисел определяется корректностью значений, которые возвращает wait3(2). В системах, в которых нет вызова wait3(2), возвращающего информацию о состоянии, вместо него используется системный вызов times(2). Однако он предоставляет гораздо меньше информации, чем wait3(2), поэтому в этих системах time для большинства ресурсов выдаёт нули.
Предполагается, что значения `%I' и `%O' являются только "реальными" вводом и выводом и не включают поддержку кэширующих устройств. Значение "реального" ввода-вывода, о котором сообщают "%I" и "%O", может быть путанным для рабочих станций, особенно бездисковых.
Команда time завершается, когда программа завершает работу, останавливается или прерывается по сигналу. Если программа завершилась нормально, возвращаемое значение time является возвращаемым значением программы, которую она выполнила и измерила. В противном случае возвращаемое значение равно 128 плюс номер сигнала, который вызвал остановку или прерывание работы программы.
time была написана Дэвидом Маккензи (David MacKenzie). Эта справочная страница была добавлена Дирком Эдделбюттелем (Dirk Eddelbuettel) <edd@debian.org>, сопровождающим Debian GNU/Linux, и предназначена для использования дистрибутивом Debian GNU/Linux, но, конечно, может использоваться другими.
tcsh(1), printf(3)
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitry Bolkhovskikh <d20052005@yandex.ru>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Сухичев Михаил Иванович <sukhichev@yandex.ru>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.
Debian GNU/Linux |