Смущающий вывод времени - PullRequest
       6

Смущающий вывод времени

0 голосов
/ 04 декабря 2009

Эта команда получает некоторые данные из MySQL, а затем манипулирует ими. Почему «реальное» время намного выше, чем «пользовательское»?

>time ./command.rb

real    45m45.457s
user    3m36.478s
sys     0m28.226s

Для пояснения - я понимаю разницу между реальным, пользовательским и системным выходом. Тем не менее, я смущен, почему есть такая большая разница. Машина, на которой я работаю, практически не использует процессор, и в моей команде нет потоков. Все, что он делает, это получает данные. Может ли сложный оператор MySQL быть причиной такого разрыва?

Ответы [ 4 ]

2 голосов
/ 04 декабря 2009

пользователь и sys сообщают, сколько времени процессор занят. Процессор не будет занят, когда заблокирован на чем-либо, например, в сети или на дисковых операциях ввода-вывода. Попробуйте, например, «time sleep 1» или «time dd if = / dev / zero of = / dev / null bs = 1024 count = 1000000», чтобы увидеть различия. Первый просто блокирует, второй будет включать в себя большую нагрузку на процессор.

2 голосов
/ 04 декабря 2009

Система проводит большую часть времени в ожидании вращения дисков и поиска голов.

«Пользовательское» время - это время, фактически потраченное на вычисление чисел процессора.

1 голос
/ 04 декабря 2009

Просто предположение, но если вы просматриваете результаты по ssh-соединению, возможно, что большая часть вашего времени ждет, пока процессор зашифрует данные для отправки на удаленную консоль.

1 голос
/ 04 декабря 2009

«Реальное» время - это количество фактического времени, которое прошло настенное время, где «пользовательское» и «sys» время - это количество процессорного времени, используемого для вашей работы в каждом классе обработки. Чтобы «реальное» время было намного выше, ваша работа, вероятно, проводила много времени в ожидании ресурсов или сна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...