Frage

Das Experimentieren mit Rubys Benchmark-Modul ...

>> 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)

Was sind die Bedeutungen von "user", "System" und "real"?

War es hilfreich?

Lösung

Dies sind die gleichen wie oft der Unix time Befehl oder andere typische Benchmarking-Tools würden berichten:

  • Benutzer : Die Menge Zeit damit verbracht, User-Space-Code ausgeführt (d.h .: Code),
  • System : die Zeit, Kernel-Code ausgegeben Ausführung und
  • real : die "echte" Menge an Zeit, die den Code auszuführen (dh System + Benutzer + verbrachte Zeit warten, ich / O, Netzwerk, Festplatte, eine Benutzereingabe, etc.). Auch bekannt als „Wanduhr Zeit“.

Andere Tipps

Bitte überprüfen Sie dieses Juwel: https://github.com/igorkasyanchuk/benchmark_methods

Nicht mehr Code wie folgt:

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

Jetzt können Sie tun:

benchmark :calculate_report # in class

Und rufen Sie Ihre Methode

user.calculate_report
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top