Как понять вывод команды времени? - PullRequest
34 голосов
/ 08 августа 2010

Я пытаюсь выяснить производительность моего кода, но я не понимаю вывод команды time. Может кто-нибудь объяснить, что означает вывод команды времени.

Вот чтоЯ получаю:

time ./filereader 

real    0m0.193s
user    0m0.012s
sys 0m0.056s

Что такое real, user, sys?

Ответы [ 3 ]

43 голосов
/ 08 августа 2010

С: http://zch051383471952.blogspot.com/2010/01/different-of-real-user-sys-time.html

Реальное относится к фактическому прошедшему времени;Пользователь и Sys относятся к времени ЦП, используемому только процессом.

  • Реальным является время настенных часов - время от начала до конца вызова.Это все прошедшее время, включая временные интервалы, используемые другими процессами, и время, которое процесс заблокировал (например, если он ожидает завершения ввода-вывода).
  • Пользователь - количество процессорного времени, потраченного накод режима (вне ядра) внутри процесса.Это только фактическое время процессора, используемое при выполнении процесса.Другие процессы и время, которое процесс заблокировал, не учитываются в этом значении.
  • Sys - это количество процессорного времени, проведенного в ядре внутри процесса.Это означает выполнение процессорного времени, затраченного на системные вызовы в ядре, в отличие от библиотечного кода, который все еще выполняется в пользовательском пространстве.Как и «пользователь», это только процессорное время, используемое процессом.
10 голосов
/ 08 августа 2010

'real' - количество часов, которое потребовалось.Если бы вы рассчитывали время с помощью секундомера, это то, что вы получили бы.

'user' - это количество процессорного времени, которое использовал сам процесс.

'sys' - это количествопроцессорного времени, которое ядро ​​потратило на процесс.

0 голосов
/ 08 августа 2010

Если вы разрабатываете на C / C ++, вы должны использовать gprof для профилирования вашего кода, отметьте http://www.cs.duke.edu/~ola/courses/programming/gprof.html.

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