GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Beispiele für Linux-Zeitbefehle

Es kann vorkommen, dass Sie Ihr Programm anhand von Parametern profilieren möchten wie:

  • Vom Programm im Benutzermodus benötigte Zeit
  • Vom Programm im Kernel-Modus benötigte Zeit
  • Durchschnittliche Speichernutzung durch das Programm
  • usw.

Unter Linux haben wir ein Dienstprogramm „Zeit“, das speziell für diesen Zweck entwickelt wurde. Das Dienstprogramm „time“ nimmt einen Programmnamen als Eingabe und zeigt Informationen über die vom Programm verwendeten Ressourcen an. Wenn der Befehl mit einem Status ungleich Null vorhanden ist, zeigt dieses Dienstprogramm außerdem eine Warnmeldung und den Beendigungsstatus an.

Die Syntax von „Zeit“ lautet:

/usr/bin/time [options] program [arguments]

In der obigen Syntax beziehen sich „Optionen“ auf eine Reihe von optionalen Flags/Werten, die an das Dienstprogramm „Zeit“ übergeben werden können, um eine bestimmte Funktionalität zu setzen oder zu deaktivieren. Im Folgenden sind die verfügbaren Zeitbefehlsoptionen aufgeführt:

  • -v, –verbose :Diese Option wird übergeben, wenn eine detaillierte Beschreibung der Ausgabe benötigt wird.
  • –quite :Diese Option verhindert, dass das Dienstprogramm „Zeit“ den Status des Programms meldet.
  • -f, –format :Mit dieser Option kann der Benutzer das Ausgabeformat des Dienstprogramms „Zeit“ steuern.
  • -p, –portability :Diese Option setzt das folgende Ausgabeformat, um die Ausgabe POSIX-konform zu machen
  • real %e
    user %U
    sys %S
  • -o FILE, –output=FILE :Mit dieser Option kann der Benutzer die Ausgabe des Dienstprogramms „time“ in eine Datei umleiten. Diese Option lässt das Dienstprogramm „time“ die Datei FILE.
  • überschreiben
  • -a, –append :Mit dieser Option kann das Dienstprogramm „time“ die Informationen an die Datei FILE anhängen, anstatt sie zu überschreiben.

Wenn der Befehl „time“ ausgeführt wird, ist die folgende Art von Ausgabe:

# /usr/bin/time ls
anaconda-ks.cfg  bin  install.log  install.log.syslog  mbox
0.00user 0.00system 0:00.00elapsed 0%CPU (0avgtext+0avgdata 3888maxresident)k
0inputs+0outputs (0major+304minor)pagefaults 0swaps

Wie wir oben sehen können, sind die letzten beiden Zeilen der Ausgabe neben der Ausführung des Befehls die Ressourceninformationen, die der Befehl „time“ ausgibt.

Hinweis:Im obigen Beispiel wurde der Befehl „time“ ohne Optionen ausgeführt. Dies ist also eine Standardausgabe, die vom Befehl „time“ generiert wird und nicht richtig formatiert ist.

Wie wir der Ausgabe entnehmen können, ist das Standardformat der generierten Ausgabe :

%Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
%Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps

Die Formatoption

Mit dieser Option kann der Benutzer entscheiden, welche Ausgabe durch den Befehl „time“ generiert wird. Im letzten Abschnitt haben wir das Standardformat besprochen, das bei der Ausgabe verwendet wird. Hier in diesem Abschnitt lernen wir, wie benutzerdefinierte Formate angegeben werden.

Die Formatzeichenfolge besteht normalerweise aus „Ressourcenbezeichnern“, die mit Klartext durchsetzt sind. Ein Prozentzeichen (`%’) in der Formatzeichenfolge bewirkt, dass das folgende Zeichen als Ressourcenbezeichner interpretiert wird.

Ein Backslash (»\«) leitet ein »Backslash-Escape« ein, das bei der Ausgabe in ein einzelnes Druckzeichen übersetzt wird. „\t“ gibt ein Tabulatorzeichen aus, „\n“ gibt einen Zeilenumbruch aus und „\\“ gibt einen Backslash aus. Ein umgekehrter Schrägstrich gefolgt von einem anderen Zeichen gibt ein Fragezeichen (`?‘) gefolgt von einem umgekehrten Schrägstrich aus, um anzuzeigen, dass ein ungültiger umgekehrter Schrägstrich angegeben wurde.

Anderer Text in der Formatzeichenfolge wird wörtlich in die Ausgabe kopiert. time gibt immer einen Zeilenumbruch aus, nachdem die Informationen zur Ressourcennutzung ausgegeben wurden, daher enden Formatstrings normalerweise nicht mit einem Zeilenumbruchzeichen (oder `0).

Zum Beispiel:

$ /usr/bin/time -f "\t%U user,\t%S system,\t%x status" date
Sun Jan 22 17:46:58 IST 2012
	0.00 user,	0.00 system,	0 status

Wir sehen also, dass wir im obigen Beispiel versucht haben, das Ausgabeformat zu ändern, indem wir ein anderes Ausgabeformat verwenden.

Ressourcen

Da wir oben besprochen haben, dass das Dienstprogramm „Zeit“ Informationen über die Ressourcennutzung durch ein Programm anzeigt, wollen wir in diesem Abschnitt die Ressourcen auflisten, die von diesem Dienstprogramm und den entsprechenden Spezifizierern verfolgt werden können.

Aus der Manpage :

  • C – Name und Befehlszeilenargumente des zeitlich festgelegten Befehls.
  • D – Durchschnittliche Größe des nicht freigegebenen Datenbereichs des Prozesses in Kilobyte.
  • E – Verstrichene Realzeit (Wanduhr), die vom Prozess verwendet wird, in [Stunden:]Minuten:Sekunden.
  • F – Anzahl der schwerwiegenden oder I/O-erfordernden Seitenfehler, die während der Ausführung des Prozesses aufgetreten sind. Dies sind Fehler, bei denen die Seite tatsächlich aus dem Primärspeicher migriert wurde.
  • I – Anzahl der Dateisystemeingaben durch den Prozess.
  • K – Durchschnittliche Gesamtspeichernutzung (Daten+Stack+Text) des Prozesses in Kilobyte.
  • M – Maximale residente Satzgröße des Prozesses während seiner Lebensdauer in Kilobyte.
  • O – Anzahl der Dateisystemausgaben durch den Prozess.
  • P – Prozentsatz der CPU, die dieser Job erhalten hat. Dies sind nur Benutzer- und Systemzeiten geteilt durch die Gesamtlaufzeit. Es druckt auch ein Prozentzeichen.
  • R – Anzahl geringfügiger oder behebbarer Seitenfehler. Dies sind Seiten, die nicht gültig sind (also fehlerhaft sind), die aber noch nicht von anderen virtuellen Seiten beansprucht wurden. Somit sind die Daten auf der Seite noch gültig, aber die Systemtabellen müssen aktualisiert werden.
  • S – Gesamtzahl der vom System für den Prozess (im Kernelmodus) verwendeten CPU-Sekunden in Sekunden.
  • U – Gesamtzahl der CPU-Sekunden, die der Prozess direkt (im Benutzermodus) verwendet hat, in Sekunden.
  • W – Häufigkeit, mit der der Prozess aus dem Hauptspeicher ausgelagert wurde.
  • X – Durchschnittliche Menge an freigegebenem Text im Prozess in Kilobyte.
  • Z – Seitengröße des Systems in Byte. Dies ist eine systemspezifische Konstante, variiert jedoch zwischen den Systemen.
  • c – Anzahl der unfreiwilligen Kontextwechsel des Prozesses (weil die Zeitscheibe abgelaufen ist).
  • e – Verstrichene Realzeit (Wanduhr), die vom Prozess verwendet wird, in Sekunden.
  • k – Anzahl der an den Prozess gelieferten Signale.
  • p – Durchschnittliche nicht freigegebene Stapelgröße des Prozesses in Kilobyte.
  • r – Anzahl der vom Prozess empfangenen Socket-Nachrichten.
  • s – Anzahl der vom Prozess gesendeten Socket-Nachrichten.
  • t – Durchschnittliche Resident-Set-Größe des Prozesses in Kilobyte.
  • w – Anzahl der freiwilligen Kontextwechsel des Programms, beispielsweise während des Wartens auf den Abschluss einer E/A-Operation.
  • x – Exit-Status des Befehls.

Wir können also sehen, dass es eine lange Liste von Ressourcen gibt, deren Nutzung durch das Dienstprogramm „Zeit“ verfolgt werden kann.

Warum /usr/bin/time? (Statt nur Zeit)

Lassen Sie uns nicht /usr/bin/time verwenden und verwenden Sie stattdessen ‚time‘.

$ time -f "\t%U user,\t%S system,\t%x status" date
-f: command not found 

real	0m0.255s
user	0m0.230s
sys	0m0.030s

Wie aus der obigen Ausgabe ersichtlich ist, gibt der Befehl „time“ bei Verwendung ohne den vollständigen Pfad (/usr/bin/time) einen Fehler bezüglich des Flags „-f“ aus. Auch das Ausgabeformat ist weder das von uns im Befehl angegebene noch das zuvor besprochene Standardformat. Dies führte zu Verwirrung darüber, wie diese Ausgabe generiert wurde.

Wenn der Befehl „time“ ohne den vollständigen Pfad (/usr/bin/time) ausgeführt wird, wird der integrierte „time“-Befehl der Bash-Shell ausgeführt.

  • Verwenden Sie „man time“, um die Manpage von /usr/bin/time anzuzeigen
  • Verwenden Sie „Hilfezeit“, um Informationen über die integrierte Bash-Zeit anzuzeigen.

Linux
  1. sa-Befehlsbeispiele in Linux

  2. ac-Befehlsbeispiele in Linux

  3. df-Befehlsbeispiele in Linux

  4. du-Befehlsbeispiele in Linux

  5. tee-Befehlsbeispiele in Linux

wc Linux-Befehl mit Beispielen

Linux-Zeitbefehl

11 Nützliche Beispiele für Linux-Datumsbefehle

Beispiele für Linux-Echo-Befehle

Beispiele für Linux-Datumsbefehle

id-Befehlsbeispiele in Linux