Подтвердить что ты не робот

Как понять выход команды времени?

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

Ниже я получаю следующее:

time ./filereader 

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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