Jump to content

время (Unix)

время
Разработчик(и) Различные с открытым исходным кодом и коммерческие разработчики разработчики
Операционная система Unix , Unix-подобные , Inferno
Платформа Кросс-платформенный
Тип Команда

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

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

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

[ редактировать ]

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

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

[ редактировать ]

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

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

[ редактировать ]

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

$ time ls

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

$ time host wikipedia.org
wikipedia.org has address 103.102.166.224
wikipedia.org mail is handled by 50 mx2001.wikimedia.org.
wikipedia.org mail is handled by 10 mx1001.wikimedia.org.
host wikipedia.org  0.04s user 0.02s system 7% cpu 0.780 total
$

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

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

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

Реализации

[ редактировать ]

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

$ /usr/bin/time sha256sum /bin/ls
12477deb0e25209768cbd79328f943a7ea8533ece70256cdea96fae0ae34d1cc  /bin/ls
0.00user 0.00system 0:00.00elapsed 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 вместо этого используется системный вызов.

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

$ time seq 10000000 | wc -l
10000000

real	0m0.078s
user	0m0.116s
sys	0m0.029s
$

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

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

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

См. также

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ca3807c059245775c7666b5fadf2140b__1722262320
URL1:https://arc.ask3.ru/arc/aa/ca/0b/ca3807c059245775c7666b5fadf2140b.html
Заголовок, (Title) документа по адресу, URL1:
time (Unix) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)