TIME(1)

BEZEICHNUNG
time - Programme ausführen und den Systemressourcenverbrauch zusammenfassen

ÜBERSICHT

time
    [ -apqvV ] [ -f FORMAT ] [ -o DATEI ]
    [ --append ] [ --verbose ] [ --quiet ] [ --portability ]
    [ --format=FORMAT ] [ --output=DATEI ] [ --version ]
    [ --help ] BEFEHL [ ARG ]

BESCHREIBUNG
time führt das Programm BEFEHL mit allen angegebenen Argumenten ARG … aus. Wenn BEFEHL beendet ist, zeigt time Informationen über von BEFEHL verwandte Ressourcen an (standardmäßig auf die Standardfehlerausgabe). Falls sich BEFEHL mit einem von Null verschiedenen Status beendet, zeigt time eine Warnmeldung und den Exit-Status an.

time bestimmt aus der Zeichenkette FORMAT die über die von BEFEHL verwandten Ressourcen anzuzeigenden Informationen an. Falls kein Format auf der Befehlszeile angegeben, aber die Umgebungsvariable TIME gesetzt ist, wird ihr Wert als das Format verwandt. Andernfalls wird ein in time eingebautes Standardformat verwandt.

Optionen an time müssen auf der Befehlszeile vor BEFEHL erscheinen. Alles auf der Befehlszeile nach BEFEHL wird als Argumente an BEFEHL übergeben.

OPTIONEN

-o FILE, --output=DATEI
    Schreibt die Ressourcenverwendungsstatistiken nach DATEI anstelle in den Standardfehlerdatenstrom. Standardmäßig überschreibt dies die Datei und zerstört den vorherigen Inhalt der Datei. Diese Option ist zum Sammeln von Informationen über interaktive Programme und Programme, die Ausgaben in den Standardfehlerdatenstrom erstellen, nützlich.

-a, --append
    Hängt die Ressourcenverwendungsinformationen an die Ausgabedatei an, statt diese zu überschreiben. Diese Option ist nur mit der Option »-o« oder »--output« nützlich.

-f FORMAT, --format FORMAT
    Verwendet FORMAT als Formatzeichenkette, die die Ausgabe von time steuert. Informationen hierzu finden Sie weiter unten.

--help
    Gibt eine Zusammenfassung der Befehlszeilenoptionen aus und beendet sich.

-p, --portability
    Verwendet die folgende Formatzeichenkette, um POSIX-Standard 1003.2 zu genügen:
              real %e
              user %U
              sys %S

-v, --verbose
    Verwendet das eingebaute ausführliche Format, das jede verfügbare Information der Programmressourcenverwendung auf einer einzelnen Zeile zusammen mit einer englischen Beschreibung ihrer Bedeutung anzeigt.

--quiet
    Meldet den Status des Programms nicht, selbst wenn er sich von Null unterscheidet.

-V, --version
    Gibt die Versionsnummer von time aus und beendet sich.

AUSGABEFORMATIERUNG
Die Formatzeichenkette FORMAT steuert den Inhalt der Ausgabe von time. Die Formatzeichenkette kann mittels der Optionen »-f« oder »--format«, »-v« oder »--verbose« oder »-p« oder »--portability« gesetzt werden. Falls keine davon angegeben ist, aber die Umgebungsvariable TIME gesetzt ist, dann wird ihr Wert als Formatzeichenkette verwandt. Andernfalls wird ein eingebautes Format verwandt. Das Standardformat lautet:
  %Uuser %Ssystem %Eelapsed %PCPU (%Xtext+%Ddata %Mmax)k
  %Iinputs+%Ooutputs (%Fmajor+%Rminor)pagefaults %Wswaps

Die Formatzeichenkette besteht normalerweise aus »Ressourcenkennzeichnern«, zwischen denen einfacher Text liegt. Ein Prozentzeichen (»%«) in der Formatzeichenkette führt dazu, dass das nachfolgende Zeichen als Ressourcenkennzeichner interpretiert wird, ähnlich wie dies die Formatierungszeichen in der Funktion printf(3) durchführen.

Ein Rückwärtsschrägstrich (»\«) leitet eine »Rückwärtsschrägstrich-Maskierung« ein, die bei der Ausgabe in ein einzelnes darstellbares Zeichen übersetzt wird. »\t« gibt einen Tabulator aus, »\n« gibt einen Zeilenumbruch aus und »\\« gibt einen Rückwärtsschrägstrich aus. Jedes andere Zeichen, das auf einen Rückwärtsschrägstrich folgt, führt zur Ausgabe eines Fragezeichens (»?«) gefolgt von einem Rückwärtsschrägstrich, um anzuzeigen, dass eine ungültige Rückwärtsschrägstrich-Maskierung angegeben wurde.

Anderer Text in der Formatzeichenkette wird unverändert in die Ausgabe kopiert. time gibt immer einen Zeilenumbruch nach der Ausgabe der Ressourcenverwendungsinformationen aus, daher sollten Formatzeichenketten normalwerweise nicht auf einen Zeilenumbruch (oder »\n«) enden.

Es gibt viele Ressourcenspezifikationen. Nicht alle Ressourcen werden von allen Versionen von Unix gemessen, so dass manche Werte als Null berichtet werden könnten. Jedes Zeichen, das einem Prozentzeichen folgt und nicht in der nachfolgenden Tabelle aufgeführt ist, führt zu einem Fragezeichen (»?«) in der Ausgabe, gefolgt von diesem Zeichen, um anzuzeigen, dass ein ungültiger Ressourcenkennzeichner angegeben wurde.

Folgende Ressourcenkennzeichner sind eine Obermenge der durch den in tcsh(1) eingebauten Befehl »time« erkannten Kennzeichner:
    %   Ein wörtliches »%«.
    C   Name und Befehlszeilenargumente des gemessenen Befehls.
    D   Durchschnittliche Größe des nicht gemeinsam benutzen Datenbereichs des Prozesses in Kilobyte.
    E   Vom Prozess verwandte abgelaufene echte (Wanduhr-)Zeit in [Stunden:]Minuten:Sekunden.
    F   Anzahl der großen (oder E/A-benötigenden) Ausnahmebehandlungen, die während der Ausführung des Prozesses auftraten. Dies sind Ausnahmebehandlungen, bei denen die Seite tatsächlich außerhalb des primären Speichers migrierte.
    I   Anzahl der Dateisystemeingaben durch den Prozess.
    K   Durchschnittlicher Gesamtspeicherverbrauch (Daten+Stapel+Text) des Prozesses in Kilobyte.
    M   Maximale Größe des resident Set des Prozesses während seiner Lebensdauer in Kilobyte.
    O   Anzahl der Dateisystemausgaben durch den Prozess.
    P   Prozentanteil der CPU, die dieser Auftrag erhielt. Dies ist einfach die Benutzer- + Systemzeit geteilt durch die gesamte Laufzeit. Gibt auch ein Prozentzeichen aus.
    R   Anzahl der kleinen oder wiederherstellbaren Seitenausnahmebehandlungen. Dies sind Seiten, die nicht mehr gültig sind (daher die Ausnahmebehandlung), aber die noch nicht durch andere virtuelle Seiten neu belegt wurden. Daher sind die Daten in dieser Seite noch gültig, aber die Systemtabellen müssen aktualisiert werden.
    S   Gesamtanzahl der CPU-Sekunden, die vom System im Auftrag des Prozesses (im Kernelmodus) verwandt wurden, in Sekunden.
    U   Gesamtanzahl der CPU-Sekunden, die der Prozess direkt (im Benutzermodus) verwandte, in Sekunden.
    W   Anzahl der Auslagerungen des Prozesses aus dem Hauptspeicher.
    X   Durchschnittliche Menge des gemeinsamen Textes in dem Prozess in Kilobyte.
    Z   Größe der Seiten des Systems in Byte. Dies ist pro System eine Konstante, unterscheidet sich aber zwischen Systemen.
    c   Anzahl der unfreiwilligen Kontext-Umschaltungen des Prozesses (da sein Zeitschlitz ablief).
    e   Vom Prozess verwandte abgelaufene echte (Wanduhr-)Zeit in Sekunden.
    k   Anzahl der an den Prozess ausgelieferten Signale.
    p   Durchschnittliche, nicht gemeinsame benutzte Stapelgröße des Prozesses in Kilobyte.
    r   Anzahl der vom Prozess empfangenen Socket-Meldungen.
    s   Anzahl der vom Prozess gesandten Socket-Meldungen.
    t   Durchschnittliche »resident set«-Größe des Prozesses in Kilobyte.
    w   Anzahl der freiwilligen Kontext-Umschaltungen des Programmes, beispielsweise beim Warten auf den Abschluss von E/A-Aktionen.
    x   Exit-Status des Befehls.

BEISPIELE
Um den Befehl »wc /etc/hosts« auszuführen und die Standardinformationen auszugeben:
     time wc /etc/hosts

Um den Befehl »ls -Fs« auszuführen und nur die Benutzer-, System- und Gesamtzeit anzuzeigen:
     time -f "\t%E real,\t%U user,\t%S sys" ls -Fs

Um die Datei BORK zu bearbeiten und »time« zu verwenden, die abgelaufene Zeit und die Anzahl der Signale zu der Datei »log« hinzuzufügen, wobei die Formatzeichenkette aus der Umgebungsvariablen »TIME« ausgelesen wird:
     export TIME="\t%E,\t%k" # Bei der Verwendung von bash oder ksh
     setenv TIME "\t%E,\t%k" # Bei der Vewendung von csh oder tcsh
     time -a -o log emacs bork

Benutzer der Shell bash müssen einen expliziten Pfad verwenden, um den externen Befehl time und nicht die eingebaute Variante auszuführen. Auf Systemen, auf denen time in /usr/bin installiert ist, würde aus dem ersten Beispiel folgendes:
     /usr/bin/time wc /etc/hosts

GENAUIGKEIT
Die abgelaufene Zeit wird nicht atomar mit der Ausführung des Programms gesammelt. Daher könnte sie im Ergebnis in bizzaren Situationen (falls der Befehl time angehalten oder ausgelagert wird, zwischen dem Zeitpunkt, zu dem sich das ausgewertete Programm beendet und dem Zeitpunkt, zu dem time berechnet, wie lange es lief) viel größer sein, als die tatsächliche Ausführungszeit.

Falls die Laufzeit eines Befehls fast Null ist, könnten einige Werte (z.B. der Prozentanteil der verwandten CPU) als entweder Null (was falsch ist) oder als Fragezeichen berichtet werden.

Der Großteil der von time angezeigten Informationen wird vom Systemaufruf wait3(2) abgeleitet. Die Zahlen sind nur so gut, wie sie wait3(2) zurückliefert. Auf Systemen, die keinen Aufruf wait3(2) haben, der Statusinformationen zurückliefert, wird stattdessen der Systemaufruf times(2) verwandt. Allerdings stellt dieser viel weniger Informationen als wait3(2) zur Verfügung, daher berichtet time auf diesen Systemen den Großteil der Ressourcen als Null.

Die Werte »%I« und »%O« sind angeblich nur »echte« Eingaben und Ausgaben und enthalten nicht solche aus zwischenspeichernden Geräten. Die Bedeutung »echter« durch »%I« und »%O« berichteter E/A kann für Workstations durcheinander gebracht werden, insbesondere bei solchen ohne Platten.

DIAGNOSE
Der Befehl time kehrt zurück, wenn sich das Programm beendet, anhält oder es durch ein Signal beendet wird. Falls das Programm sich normal beendete, ist der Rückgabewert von time der Rückgabewert des Programms, das es ausgeführt und gemessen hat. Andernfalls ist der Rückgabewert 128 plus die Nummer des Signals, das zum Anhalten oder Beenden des Programms führte.

AUTOR
time wurde von David MacKenzie geschrieben. Diese Handbuchseite wurde von Dirk Eddelbuettel <edd@debian.org>, dem Debian-GNU/Linux-Betreuer zur Verwendung durch die Distribution Debian GNU/Linux hinzugefügt, kann aber natürlich von anderen verwandt werden.

SIEHE AUCH
tcsh(1), printf(3)

ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 (https://www.gnu.org/licenses/gpl-3.0.html) oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer (debian-l10n-german@lists.debian.org).