So ermitteln Sie die Ausführungszeit eines Befehls oder Prozesses in Linux

So ermitteln Sie die Ausführungszeit eines Befehls oder Prozesses in Linux

Auf Unix-ähnlichen Systemen wissen Sie möglicherweise, wann mit der Ausführung eines Befehls oder Prozesses begonnen wird und wie lange ein Prozess bereits ausgeführt wird. Aber woher wissen Sie, wann der Befehl oder Prozess abgeschlossen ist oder wie lange die Ausführung gedauert hat? Auf Unix-ähnlichen Systemen ist dies sehr einfach! Es gibt ein speziell für diesen Zweck entwickeltes Programm namens GNU time. Mithilfe des Zeitprogramms können wir die gesamte Ausführungszeit eines Befehls oder Programms im Linux-Betriebssystem einfach messen. Der Zeitbefehl ist in den meisten Linux-Distributionen vorinstalliert, Sie müssen ihn also nicht installieren.

Ermitteln Sie die Ausführungszeit eines Befehls oder Prozesses in Linux

Um die Ausführungszeit eines Befehls oder Programms zu messen, führen Sie Folgendes aus:

$ /usr/bin/time -p ls

oder,

$ time ls

Beispielausgabe:

dir1 dir2 file1 file2 mcelog
real 0m0.007s
Benutzer 0m0.001s
System 0 m 0,004 s
$ Zeit ls -a
. .bash_logout dir1 file2 mcelog .sudo_as_admin_successful
.. .bashrc dir2 .gnupg .profile .wget-hsts
.bash_history .cache Datei1 .local .stack
real 0m0.008s
Benutzer 0m0.001s
System 0 m 0,005 s

Der obige Befehl zeigt die Gesamtausführungszeit des ls-Befehls. Sie können ls durch einen beliebigen Befehl oder Prozess ersetzen, um die gesamte Ausführungszeit zu ermitteln.

Ausgabedetails:

  1. real - bezieht sich auf die Gesamtzeit, die der Befehl oder das Programm benötigt
  2. Benutzer - bezieht sich auf die Zeit, die das Programm im Benutzermodus verbringt
  3. sys - bezieht sich auf die Zeit, die das Programm im Kernelmodus verbringt

Wir können den Befehl auch so beschränken, dass er nur für einen bestimmten Zeitraum ausgeführt wird. Weitere Einzelheiten finden Sie in den folgenden Tutorials:

So lassen Sie einen Befehl in Linux für eine bestimmte Zeit ausführen

Zeit und /usr/bin/Zeit

Ihnen ist vielleicht aufgefallen, dass wir in den obigen Beispielen zwei Befehle verwendet haben: time und /usr/bin/time. Sie fragen sich vielleicht, was der Unterschied ist.

Lassen Sie uns zunächst mithilfe des Typbefehls sehen, was der Zeitbefehl ist. Für die Linux-Befehle, die wir nicht kennen, wird der Typbefehl verwendet, um Informationen zu verwandten Befehlen zu finden. Weitere Einzelheiten finden Sie in diesem Handbuch.

$ Typ -a Zeit
Zeit ist ein Shell-Schlüsselwort
Zeit ist /usr/bin/time

Wie Sie in der Ausgabe oben sehen können, bedeutet Zeit zweierlei:

  • Eines davon ist ein eingebautes Schlüsselwort in der BASH-Shell
  • Eine davon ist eine ausführbare Datei, wie etwa /usr/bin/time

Da Shell-Schlüsselwörter Vorrang vor ausführbaren Dateien haben, führen Sie den in der Shell integrierten Befehl aus, wenn Sie den Zeitbefehl ausführen, ohne einen vollständigen Pfad anzugeben. Wenn Sie jedoch /usr/bin/time ausführen, führen Sie den echten GNU-Zeitbefehl aus. Daher müssen Sie möglicherweise den vollständigen Pfad angeben, um den eigentlichen Befehl auszuführen.

In den meisten Shells wie BASH, ZSH, CSH, KSH, TCSH usw. ist das integrierte Schlüsselwort „time“ verfügbar. Das Schlüsselwort „time“ hat weniger Optionen als die ausführbare Datei. Die einzige Option, die Sie verwenden können, ist „-p“.

Sie wissen jetzt, wie Sie mit dem Zeitbefehl die Gesamtausführungszeit eines bestimmten Befehls oder Prozesses ermitteln. Möchten Sie mehr über das GNU-Zeittool erfahren? Lesen Sie weiter!

Eine kurze Einführung in das GNU-Zeitprogramm

Das GNU-Zeitprogramm führt einen Befehl oder ein Programm mit angegebenen Argumenten aus und fasst die Systemressourcennutzung nach Abschluss des Befehls in der Standardausgabe zusammen. Im Gegensatz zum Zeitschlüsselwort zeigt das GNU-Zeitprogramm nicht nur die Ausführungszeit eines Befehls oder Prozesses an, sondern auch andere Ressourcen wie Speicher, E/A und IPC-Aufrufe.

Die Syntax des Zeitbefehls lautet:

/usr/bin/time [Optionen] Befehl [Argumente …]

Die Optionen in der obigen Syntax beziehen sich auf eine Reihe von Optionen, die mit dem Zeitbefehl verwendet werden können, um bestimmte Funktionen auszuführen. Folgende Optionen stehen zur Verfügung:

  • -f, –format —— Verwenden Sie diese Option, um das Ausgabeformat entsprechend Ihren Anforderungen anzugeben.
  • -p, --portability – Prägnantes Ausgabeformat verwenden.
  • -o Datei, --output=DATEI – Ausgabe in die angegebene Datei statt in die Standardausgabe schreiben.
  • -a, --append – Hängt die Ausgabe an die Datei an, anstatt sie zu überschreiben.
  • -v, –verbose – Diese Option zeigt detaillierte Informationen zur Zeitbefehlausgabe an.
  • --quiet – Diese Option verhindert, dass der Zeitbefehl den Status des Programms meldet.

Wenn Sie den GNU-Zeitbefehl ohne Optionen verwenden, wird die folgende Ausgabe angezeigt.

$ /usr/bin/time wc /etc/hosts
9 28 273 /etc/hosts
0,00 Benutzer 0,00 System 0:00,00 abgelaufen 66 % CPU (0 Durchschnittstext + 0 Durchschnittsdaten 2024 maxresident) k
0Eingaben+0Ausgaben (0Haupt-+73Neben-)Seitenfehler 0Swaps

Wenn Sie denselben Befehl mit dem Shell-Schlüsselwort „time“ ausführen, sieht die Ausgabe etwas anders aus:

$ Zeit wc /etc/hosts
9 28 273 /etc/hosts
real 0m0.006s
Benutzer 0m0.001s
System 0 m 0,004 s

Manchmal möchten Sie die Nutzung der Systemressourcen möglicherweise in einer Datei statt im Terminal ausgeben. Dazu können Sie die Option -o wie unten gezeigt verwenden.

$ /usr/bin/time -o datei.txt ls
dir1 dir2 file1 file2 datei.txt mcelog

Wie Sie sehen, druckt der Zeitbefehl nichts auf dem Terminal aus. Weil wir die Ausgabe in die Datei file.txt geschrieben haben. Schauen wir uns den Inhalt dieser Datei an:

$ cat datei.txt
0,00 Benutzer 0,00 System 0:00,00 abgelaufen 66 % CPU (0 Durchschnittstext + 0 Durchschnittsdaten 2512 max. Resident) k
0Eingaben+0Ausgaben (0Haupt-+106Neben-)Seitenfehler 0Swaps

Wenn Sie die Option -o verwenden und keine Datei mit dem Namen file.txt haben, wird eine Datei erstellt und die Ausgabe dort hineingeschrieben. Wenn die Datei existiert, wird der ursprüngliche Inhalt überschrieben.

Sie können die Option -a verwenden, um die Ausgabe an eine Datei anzuhängen, anstatt ihren Inhalt zu überschreiben.

$ /usr/bin/time -a file.txt ls

Mit der Option -f kann der Benutzer das Ausgabeformat nach seinen Wünschen steuern. Beispielsweise zeigt die Ausgabe des folgenden Befehls nur Benutzer, System und Gesamtzeit an.

$ /usr/bin/time -f "\t%E real,\t%U Benutzer,\t%S sys" ls
dir1 dir2 file1 file2 mcelog
0:00.00 real, 0.00 Benutzer, 0.00 sys

Bitte beachten Sie, dass der in die Shell integrierte Zeitbefehl nicht über die gesamte Funktionalität des GNU-Zeitprogramms verfügt.

Eine detaillierte Beschreibung des GNU-Zeitprogramms kann mit dem Befehl „man“ angezeigt werden.

$ man time

Um mehr über das in Bash integrierte Zeitschlüsselwort zu erfahren, führen Sie Folgendes aus:

$ help time

Zusammenfassen

Oben habe ich Ihnen erklärt, wie Sie die Ausführungszeit eines Befehls oder Prozesses in Linux ermitteln können. Ich hoffe, es wird Ihnen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!

Das könnte Sie auch interessieren:
  • Python ermittelt den Linux-Prozess und beendet den Prozess
  • Detaillierte Erklärung, wie man einen Prozess in Linux zwangsweise beendet
  • So finden Sie belegte Ports und beenden Prozesse in Linux
  • 8 Beispiele für die Verwendung des Killall-Befehls zum Beenden von Prozessen in Linux
  • Linux-Methodenbeispiel zum Anzeigen aller Informationen des Prozesses
  • Lösen Sie das Problem, dass der Knotenprozess im Linux-System ausgeführt wird, aber nicht beendet werden kann

<<:  Detaillierte Erläuterung inkompatibler Änderungen an Rendering-Funktionen in Vue3

>>:  Lösung für den MySQL-Dienstfehler 1067: Ändern Sie den Pfad der ausführbaren MySQL-Datei

Artikel empfehlen

Eine detaillierte Erklärung, wie React Fiber funktioniert

Inhaltsverzeichnis Was ist React Fiber? Warum Rea...

JS implementiert den Beispielcode der Dezimalkonvertierung in Hexadezimal

Vorwort Beim Schreiben von Code stoßen wir gelege...

Unbekannte Verwendung von Object.entries in JavaScript

Inhaltsverzeichnis Vorwort 1. Verwenden Sie for.....

So implementieren Sie das Singleton-Muster in Javascript

Inhaltsverzeichnis Überblick Code-Implementierung...

Implementierung der QR-Code-Scanfunktion über Vue

Hinweis Auf dieses Plugin kann nur unter dem http...

So erstellen, starten und stoppen Sie einen Docker-Container

1. Ein Container ist eine unabhängig laufende Anw...

Grundlegende Verwendung und Beispiele von yum (empfohlen)

yum-Befehl Yum (vollständiger Name Yellow Dog Upd...

Installationsprozess der React Native-Umgebung

React-Native-Installationsprozess 1.npx react-nat...

Vue Uniapp realisiert den Segmentierungseffekt

In diesem Artikel wird der spezifische Code von V...

Detaillierte Erklärung, wie Zabbix den Master-Slave-Status von MySQL überwacht

Nach dem Einrichten des MySQL-Master-Slaves wisse...