Модуль бенчмарка Ruby:значения слов “пользователь”, “система” и “реальный”?
-
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
Не связан с StackOverflow