Ruby-Benchmark-Modul: Bedeutungen von „user“, „System“ und „real“?
-
06-07-2019 - |
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"?
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