Модуль бенчмарка Ruby:значения слов “пользователь”, “система” и “реальный”?

StackOverflow https://stackoverflow.com/questions/1616269

  •  06-07-2019
  •  | 
  •  

Вопрос

Экспериментирую с эталонным модулем Ruby...

>> Benchmark.bm(7) { |b| b.report('Report:') { s = '' ; 10000.times { s += 'a' } }  }
             user     system      total        real
Report:  0.150000   0.010000   0.160000 (  0.156361)

Каковы значения терминов "пользователь", "система" и "реальный"?

Это было полезно?

Решение

Это те же самые времена , когда Unix time команда или другие типичные инструменты бенчмаркинга будут сообщать:

  • пользователь:количество времени, затраченного на выполнение пользовательского кода (т. е.:ваш код),
  • система:количество времени, затраченного на выполнение кода ядра, и
  • реальный:"реальное" количество времени, затраченное на выполнение кода (т. е. система + пользователь + время, затраченное на ожидание ввода-вывода, сети, диска, пользовательского ввода и т.д.).Также известен как "время настенных часов".

Другие советы

Пожалуйста, проверьте этот драгоценный камень: https://github.com/igorkasyanchuk/benchmark_methods

Больше такого кода нет:

t = Time.now
user.calculate_report
puts Time.now - t

Теперь вы можете сделать:

benchmark :calculate_report # in class

И просто вызовите свой метод

user.calculate_report
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top