Удивительный вывод команды времени - PullRequest
2 голосов
/ 25 октября 2010

Я пытаюсь сравнить время выполнения одного из моих сценариев. Я получаю следующий вывод

#time ./foo.py
real    0m37.883s
user    1m0.648s
sys     0m4.680s
#

Внутренне, foo порождает множество других процессов и ждет, пока все они умрут. Исходя из этой темы и моего более раннего понимания реального, пользовательского и системного времени, я думал, что реальное время будет, по крайней мере, равно пользовательскому времени. Это связано с тем, что реальное время все время истекло от начала до конца (также включает временные интервалы, используемые другими процессами). В то время как пользовательское время состоит только из процессорного времени, потраченного на код пользовательского режима в процессе. Так как же пользовательское время здесь больше реального? Это потому, что каким-то образом добавляются пользовательские времена всех дочерних процессов?

1 Ответ

2 голосов
/ 25 октября 2010

Реальное время иногда называют временем настенных часов.Это время, прошедшее во время выполнения программы.Время пользователя может быть много раз в реальном времени, если код многопоточный, как звучит ваш код.Да, это в основном добавление пользовательского времени для потоков;Аналогичные рассуждения применимы к системному времени.

...