Módulo Ruby Benchmark: significados de & # 8220; usuario & # 8221 ;, & # 8220; sistema & # 8221 ;, y & # 8220; real & # 8221 ;?
-
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 " ;?
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