Módulo Ruby Benchmark: significados de & # 8220; usuario & # 8221 ;, & # 8220; sistema & # 8221 ;, y & # 8220; real & # 8221 ;?

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

  •  06-07-2019
  •  | 
  •  

Pregunta

Experimentando con el módulo de referencia 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)

¿Cuáles son los significados de " usuario " ;, " sistema " ;, y " real " ;?

¿Fue útil?

Solución

Estas son las mismas veces que el comando Unix time u otras herramientas de evaluación comparativa típicas informarían:

  • usuario : la cantidad de tiempo dedicado a ejecutar código de espacio de usuario (es decir, su código),
  • sistema : la cantidad de tiempo dedicado a ejecutar el código del núcleo y
  • real : el " real " cantidad de tiempo que llevó ejecutar el código (es decir, sistema + usuario + tiempo dedicado a esperar E / S, red, disco, entrada del usuario, etc.). También conocido como "tiempo de reloj de pared".

Otros consejos

Por favor revisa esta gema: https://github.com/igorkasyanchuk/benchmark_methods

No más código como este:

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

Ahora puedes hacer:

benchmark :calculate_report # in class

Y simplemente llame a su método

user.calculate_report
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top