Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

В вычислений , timeпредставляет собой команду в Unix и Unix-подобных операционных систем. Он используется для определения продолжительности выполнения конкретной команды .

Обзор [ править ]

time(1)может существовать как отдельная программа (например, GNU time) или как встроенная оболочка в большинстве случаев (например, в sh , bash , tcsh или в zsh ).

Пользовательское время и системное время [ править ]

Общее время CPU является сочетание количества времени процессора или процессоров , потраченное на выполнение какого - либо действия для программы и количество времени , которое они провели выполнение системных вызовов для ядра от имени программы. Когда программа проходит через массив, она накапливает время ЦП пользователя. И наоборот, когда программа выполняет системный вызов, такой как execили fork, она накапливает время центрального процессора системы.

Реальное время и процессорное время [ править ]

Термин «реальное время» в этом контексте относится к истекшему времени на настенных часах , например, при использовании секундомера. Общее время ЦП (время пользователя + системное время) может быть больше или меньше этого значения. Поскольку программа может некоторое время ждать и вообще не выполняться (в пользовательском или системном режиме), реальное время может быть больше, чем общее время ЦП. Поскольку программа может разветвлять дочерние элементы, время ЦП (как пользовательское, так и системное) добавляется к значениям, сообщаемым timeкомандой, но в многоядерной системе эти задачи выполняются параллельно, общее время ЦП может быть больше, чем реальное время.

Использование [ править ]

Чтобы использовать команду, просто поставьте перед любой командой слово time, например:

$ time ls

Когда команда завершится, timeсообщит, сколько времени потребовалось для выполнения lsкоманды с точки зрения пользовательского времени центрального процессора , системного времени центрального процессора и реального времени. Формат вывода различается в зависимости от версии команды, а некоторые дают дополнительную статистику, как в этом примере:

$ time host wikipedia.org wikipedia.org имеет адрес 103.102.166.224 wikipedia.org, почта обрабатывается 50 mx2001.wikimedia.org. Почтой wikipedia.org занимается 10 mx1001.wikimedia.org. хост wikipedia.org 0,04 сек. пользователь 0,02 сек. система 7% ЦП 0,780 всего $

time (либо автономная программа, либо когда оболочка Bash работает в режиме POSIX И время вызывается как time -p) сообщает стандартный вывод ошибок.

время -p [ править ]

Переносимые скрипты должны использовать time -pрежим, который использует другой формат вывода, но совместим с различными реализациями:

$ time -p sha256sum / bin / ls 12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc / bin / ls real 0.00 user 0.00 sys 0.00 $

Реализации [ править ]

Время GNU [ править ]

Текущие версии GNU time по умолчанию сообщают больше, чем просто время:

$ / USR / бен / время sha256sum / бен / LS 12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc / бен / LS 0.00user 0.00system 0: 00.00elapsed 100% ЦП (0avgtext + 0avgdata 2156maxresident) K 0inputs + 0outputs (0major + 96minor) свопирование 0swaps $

Формат вывода для времени GNU может быть скорректирован с помощью TIMEпеременной среды, и он может включать информацию, отличную от времени выполнения (т. Е. Использования памяти). Это поведение недоступно в обычном POSIX- совместимом времени или при выполнении как time -p.

Документацию этого времени обычно можно получить с помощью man 1 time.

Метод работы [ править ]

Согласно исходному коду реализации GNU time, большая часть информации, отображаемой в, timeполучена из wait3системного вызова. В системах, в которых нет wait3вызова, возвращающего информацию о состоянии, timesвместо него используется системный вызов.

Баш [ править ]

В популярной Unix оболочки Bash , timeспециальное ключевое слово, которое может быть поставлен перед трубопровода (или одной команды), что меры по времени всего трубопровода, а не только команды сингулярного (первый), и использует другой формат по умолчанию, и путы пустая строка перед отчетным временем:

$ time seq 10000000  | туалет -l 10000000real 0m0.078s пользователь 0m0.116s sys 0m0.029s $

Сообщаемое время - это время, используемое обоими seqи wc -lсуммируемое. Формат вывода можно настроить с помощью TIMEFORMATпеременной.

Время не является встроенным, но специальным ключевым слово, и не может рассматриваться в качестве функции или команды. Он также игнорирует конвейерные перенаправления (даже если выполняется как time -p, если только Bash не запущен в «режиме POSIX»).

Доступ к документации на этот раз можно получить с помощью man 1 bashили внутри самого bash с помощью help time.

См. Также [ править ]

  • Системное время
  • Cron- процесс для планирования выполнения заданий в определенное время
  • ВРЕМЯ (команда)

Ссылки [ править ]

  • time: time простая команда - Справочник по командам и служебным программам, Единая спецификация UNIX , выпуск 7 от The Open Group
  • time(1) -  Руководство по общим командам Inferno
  • time(1): Время простой команды или отдавание ресурс использование -  Linux пользователя Руководство - Команды пользователя