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 "?

Foi útil?

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
scroll top