stringtranslate.com

время (Unix)

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

Обзор

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

Время пользователя против времени системы

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

Реальное время против времени ЦП

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

Использование

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

$ время ls  

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

$ время  хост  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 вызывается как ) выводит данные в стандартный вывод ошибок.time -p

время -п

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

$ время  -p  sha256sum  /bin/ls 12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc /bin/ls реальное 0.00 пользователь 0.00 система 0.00 $

Реализации

время GNU

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

$ /usr/bin/time  sha256sum  /bin/ls 12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc /bin/ls 0.00user 0.00system 0:00.00прошло 100%CPU (0avgtext+0avgdata 2156maxresident)k 0inputs+0outputs (0major+96minor)pagefaults 0swaps $

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

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

Метод работы

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

Баш

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

$ время  seq 10000000 | wc -l 10000000    реальный 0m0.078s пользователь 0m0.116s система 0m0.029s $

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

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

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

Смотрите также

Ссылки