Module Ruby Benchmark: signification de l ’& # 8220; utilisateur & # 8221 ;, & # 8220; système & # 8221 ;, et & # 8220; réel & # 8221 ;?
-
06-07-2019 - |
Question
Expérimentation du module Benchmark 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)
Quelles sont les significations de "utilisateur", "système" et "réel"?
La solution
Ce sont les mêmes temps que ceux signalés par la commande time
d'Unix ou par d'autres outils d'analyse comparative typiques:
- utilisateur : la durée d'exécution du code de l'espace utilisateur (c'est-à-dire: votre code),
- système : la durée d'exécution du code du noyau et
- real : le "réel" durée d'exécution du code (par exemple, système + utilisateur + temps d'attente pour les entrées / sorties, le réseau, le disque, l'utilisateur, etc.). Aussi appelé "heure de l'horloge murale".
Autres conseils
Veuillez vérifier cette gemme: https://github.com/igorkasyanchuk/benchmark_methods
Plus de code comme celui-ci:
t = Time.now
user.calculate_report
puts Time.now - t
Maintenant, vous pouvez faire:
benchmark :calculate_report # in class
Et appelez simplement votre méthode
user.calculate_report
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow