33 Stimmen

Ruby Benchmark-Modul: Bedeutung von "user", "system" und "real"?

Experimentieren mit dem Benchmark-Modul von 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)

Welche Bedeutung haben die Begriffe "Benutzer", "System" und "real"?

63voto

Jörg W Mittag Punkte 349574

Dies sind die gleichen Zeiten, in denen die Unix time Befehl oder andere typische Benchmarking-Tools melden würden:

  • Benutzer die Zeit, die mit der Ausführung von Userspace-Code (d.h.: Ihrem Code) verbracht wird,
  • System die Zeit, die mit der Ausführung von Kernel-Code verbracht wird und
  • real die "echte" Zeit, die für die Ausführung des Codes benötigt wurde (d. h. System + Benutzer + Zeit, die mit dem Warten auf E/A, Netzwerk, Festplatte, Benutzereingaben usw. verbracht wird). Auch bekannt als "Wallclock-Zeit".

-5voto

Igor Kasyanchuk Punkte 728

Bitte prüfen Sie dieses Kleinod: https://github.com/igorkasyanchuk/benchmark_methods

Kein Code mehr wie dieser:

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

Das können Sie jetzt tun:

benchmark :calculate_report # in class

Und rufen Sie einfach Ihre Methode

user.calculate_report

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X