Введение
Команда в Unix и Unix-подобных операционных системах.
the Unix command
В вычислительной технике команда `time` в Unix и Unix-подобных операционных системах используется для измерения времени выполнения другой команды.
Обзор
time(1) может существовать как самостоятельная программа (например, GNU time) или как встроенная команда оболочки в большинстве случаев (например, в sh, bash, tcsh или zsh).
Время пользователя против времени системы
Общее время работы процессора складывается из времени, затраченного процессором или процессорами на выполнение действий для программы, и времени, затраченного на выполнение системных вызовов для ядра от имени этой программы. Когда программа перебирает элементы массива, она накапливает время работы процессора в пользовательском режиме. Напротив, при выполнении программой системного вызова, например exec или fork, накапливается время работы процессора в режиме ядра.
Реальное время против времени процессора
Термин "реальное время" в данном контексте относится к истекшему времени по настенным часам, как при использовании секундомера. Общее время работы ЦП (время, затраченное в пользовательском режиме + время, затраченное в системном режиме) может быть больше или меньше этого значения. Поскольку программа может тратить время на ожидание и вообще не выполнять никаких операций (будь то в пользовательском или системном режиме), реальное время может превышать общее время работы ЦП. Поскольку программа может создавать дочерние процессы, время работы ЦП которых (как пользовательское, так и системное) добавляется к значениям, выдаваемым командой time, но в многоядерной системе эти задачи выполняются параллельно, общее время работы ЦП может быть больше, чем реальное время.
Способ работы
Согласно исходному коду реализации `time` в GNU, большая часть информации, отображаемой командой `time`, извлекается из системного вызова `wait3`. В системах, где системный вызов `wait3`, возвращающий информацию о статусе, отсутствует, вместо него используется системный вызов `times`.