Команда времени UNIX - учитывается ли время ввода? - PullRequest
2 голосов
/ 09 декабря 2010

Я использую команду времени unix для записи времени запуска java-программы.

Первое, что делает моя программа, когда она запускается, просит пользователя ввести путь к файлу.

Время, затраченное на ввод этого значения и нажатие клавиши return, учитывается в статистике времени, возвращаемой этой командой? Вывод для моей команды времени имеет вид:

. # U #. # S #: #. # #. #% # + # K # + # io # pf + # w

где # - целое число

Спасибо

1 Ответ

3 голосов
/ 09 декабря 2010

Да, время, затрачиваемое на ввод данных, является частью реального времени (третья запись в вашем выводе).

Простая демонстрация:

$ time(sleep 5 ; echo hi | read)

real      0m5.005s
user      0m0.000s
sys       0m0.004s

Здесь echo hi напечатает hi на выводе std, а read прочитает его. Я добавил 5-секундную задержку, прежде чем произойдет это написание и чтение. И я рассчитал все это время.

Как видно, реальное время составляет около 5 секунд, что означает, что оно учитывает время, которое команда read потратила на чтение ввода.

Просто чтобы завершить, пользовательское время - это время, которое ЦП затрачивает на выполнение инструкций в нашей программе, таких как циклы, условные выражения.
А системное время - это время, затрачиваемое ЦП на выполнение системных вызовов. В нашем примере мы видим 4 мсек времени sys, потому что в эту команду вовлечено много вызовов sys, например read, write и т. Д.

...