Módulo Ruby Benchmark: significados de "Usuário", "Sistema" e "Real"?
-
06-07-2019 - |
Pergunta
Experimentando o módulo de referência de 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)
Quais são os significados de "usuário," sistema "e" real "?
Solução
Estes são os mesmos momentos em que o Unix time
Comando ou outras ferramentas típicas de benchmarking relatariam:
- do utilizador: a quantidade de tempo gasto executando o código do userspace (ou seja: seu código),
- sistema: a quantidade de tempo gasto executando o código do kernel e
- real: a quantidade "real" de tempo necessária para executar o código (ou seja, sistema + do utilizador + tempo gasto esperando por E/S, rede, disco, entrada do usuário etc.). Também conhecido como "tempo de parede".
Outras dicas
Por favor, verifique esta jóia:https://github.com/igorkasyanchuk/benchmark_methods
Não há mais código como este:
t = Time.now
user.calculate_report
puts Time.now - t
Agora você pode fazer:
benchmark :calculate_report # in class
E apenas chame seu método
user.calculate_report
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow