system.time

Tags: OS, System, Zeit

system.time(…) misst die Zeit, die R benötigt, um den Befehl in der Klammer auszuführen. Dabei wird der Befehl auch tatsächlich ausgeführt, d.h. findet in der Klammer eine Variablenzuordnung statt, ist die Variable danach auch verfügbar.

Es wird ein Vektor vom Typ proc_time mit 5 Einträgen zurückgegeben: user, system und elapsed (verstrichene) Zeit des R-Prozesses sowie die kummulierten User und System-Zeiten aller Child-Prozesse. Die Anzeige in der Konsole bzw. durch den print-Befehl gibt nur 3 Werte zurück, nämlich die User-Zeit vom Haupt-Prozess plus aller Child-Prozesse, die System-Zeit vom Haupt-Prozess plus aller Child-Prozesse sowie die tatsächlich verstrichene Zeit. Das entspricht dem summary-Befehl der Klasse proc.time

Was sind User- und System-Zeit?

“User CPU time” gibt die CPU Zeit, die der aktuelle Prozess benötigt hat, während “system CPU time” die Zeit ist, die die CPU für Betriebssystem-Prozesse (Öffnen von Dateien, andere Prozesse starten etc.) benötigt. Als Anwender interessiert uns vor allem der dritte Parameter, also die tatsächlich verstrichene Zeit.

Beispiel

system.time(x <- rnorm(1000000))
# User      System  verstrichen 
#0.09         0.00         0.10
a <- system.time(for (i in 1:10) rnorm(1000000))
class(a)
[1] "proc_time"
names(a)
[1] "user.self"  "sys.self"   "elapsed"    "user.child" "sys.child"
a[1:5]
# user.self   sys.self    elapsed user.child  sys.child 
#      9.44       0.19       9.69         NA         NA

Wer tiefer einsteigen möchte, schaut sich mal das Package microbenchmark an, welches mehrere Berechnungen vergleichen kann.

Data Science mit Python

 

Leider ist der Kurs noch nicht fertig, ich arbeite aber daran. Melde dich jetzt unverbindlich an und erhalte 25% Frühbucherrabatt auf meinen Onlinekurs Data Science mit Python. Du erfährst außerdem als Erste/r sobald ich den Kurs fertiggestellt habe.

Du hast Dich erfolgreich angemeldet!