Frage Wie kann ich die Ausführungszeit eines Terminalprozesses messen?


Ich versuche, die Ausführungszeit eines Prozesses zu messen, den ich über die Befehlszeile abrufe (d. H. Ich möchte herausfinden, wie lange es dauert, bis der Prozess beendet ist). Gibt es einen Befehl, den ich dem Befehl hinzufügen kann, der den Prozess aufruft, der dies erreicht?


129
2017-07-17 12:26


Ursprung




Antworten:


Hinzufügen time vor dem Befehl, den Sie messen möchten.

Die Ausgabe sieht folgendermaßen aus:

real    0m0.606s
user    0m0.000s
sys     0m0.002s

Erklärung zu real, user und sys (von man time):

  • real: Verstrichene tatsächliche (Wanduhr) Zeit, die der Prozess in Sekunden benötigt.
  • user: Gesamtzahl der CPU-Sekunden, die der Prozess direkt (im Benutzermodus) in Sekunden verwendet hat.
  • sys: Gesamtzahl der CPU-Sekunden, die das System im Auftrag des Prozesses (im Kernel-Modus) in Sekunden benötigt.

159
2017-07-17 12:30



@ninjalj, können Sie mehr Informationen darüber, was die real, user, und sys Zeiten sind, dass dieser Befehl zurückkehrt? - Christopher Kyle Horton
@JacobVlijm Diese Antwort ist nicht so ausführlich. :) Du könntest in deinem Kommentar editieren und es so machen. - muru
Beachten Sie, dass Sie möglicherweise benötigen sudo apt-get install time wenn Sie eine Shell verwenden, in der time ist nicht eingebaut. - poolie


Versuchen Sie für eine zeilenweise Delta-Messung Gnomon.

Es ist ein Befehlszeilendienstprogramm, ähnlich wie moreutils ts, um Timestamp-Informationen der Standardausgabe eines anderen Befehls voran zu stellen. Nützlich für lang andauernde Prozesse, bei denen Sie eine historische Aufzeichnung dessen haben möchten, was so lange dauert.

Wenn Sie alles an ein Gnomon übergeben, wird jeder Zeile ein Zeitstempel vorangestellt, der angibt, wie lange diese Zeile die letzte Zeile im Puffer war - also wie lange es dauerte, bis die nächste Zeile erschien. Standardmäßig zeigt gnomon die zwischen den einzelnen Zeilen verstrichenen Sekunden an, die jedoch konfigurierbar sind.

gnomon demo


32
2017-07-27 10:45



Das ist ziemlich glatt. - Nathan Arthur
(Tippfehler in Link, zum Glück URL ok). Sie können es mit installieren sudo npm i gnomon -g Wenn Sie haben npm. Ich bin mir nicht sicher, wie gut es gegen "Fortschritts" -Linien mit '\ r' (in der gleichen Zeile) funktioniert: In diesem Fall würde ich es gerne als eine lange Zeile zählen, nicht als separate Zeile. - Tomasz Gandor
also pumpen wir es zu gnomon! das ist es ? - Ciasto piekarz


Sie können verwenden time:

time ls -R

22
2017-07-17 12:30





date +"%T" && cp -r ./file  /destination/folder/here && date +"%T"

Wenn Sie diesen Befehl im Terminal ausführen, erhalten Sie die gesamte Zeit für die Bearbeitung einer Datei


5
2017-08-11 05:20





Gelegentlich benötige ich eine Stoppuhr, um zu zählen, wie lange eine Aktion wie das Hochfahren meiner App dauert. In diesem Fall sind viele der Lösungen hier nicht sinnvoll.

Dafür benutze ich gerne sw.

sw

Installieren

wget -q -O - http://git.io/sinister | sh -s -- -u https://raw.githubusercontent.com/coryfklein/sw/master/sw

Verwendung

sw
 - start a stopwatch from 0, save start time in ~/.sw
sw [-r|--resume]
 - start a stopwatch from the last saved start time (or current time if no last saved start time exists)
 - "-r" stands for --resume

4
2018-06-23 21:11