Module Ruby Benchmark: signification de l ’& # 8220; utilisateur & # 8221 ;, & # 8220; système & # 8221 ;, et & # 8220; réel & # 8221 ;?

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

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

Était-ce utile?

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