Eine Stoppuhr für arme Leute

Fr, 24. September 2021, Ralf Hersel

Für diesen kleinen CLI-Tipp lohnt sich kaum ein eigener Artikel; aber was solls. Manchmal benötigt man eine Stoppuhr, um Dinge am Computer zu messen: wie lange kann ich die Luft anhalten, wie lange braucht Firefox als Snap-Paket zum Starten, oder wie lange braucht mein Skript, bis es fertig ist.

Natürlich kann man irgendeine Uhren-App installieren und starten, herausfinden, wo die Stoppuhr-Funktion verborgen ist und dann die Zeit messen. Es geht jedoch viel einfacher - der Kommandozeilen-Befehl: time read erfüllt genau die Anforderung an eine einfache Stoppuhr. Nach dem Aufruf des Befehls passiert visuell gar nichts. Erst nach einem erneuten Drücken der RETURN-Taste wird das Ergebnis der Messung angezeigt (siehe Screenshot). Dabei werden drei verschiedene Zeiten gemessen:

  • real - die tatsächlich verstrichene Zeit vom Aufruf des Befehls bis zum Abbrechen mit der RETURN-Taste
  • user - die im Benutzermodus verbrachte CPU-Zeit
  • sys - die im Kernel-Modus verbrachte CPU-Zeit

In den meisten Fällen ist nur die real Zeit von Interesse.

In der Bash und auch der Fish-Shell funktioniert der Befehl time read einwandfrei. Nicht jedoch in der Z-Shell (ZSH); dort gibt es drei Alternativen:

  1. Die ZSH zeigt sowieso am rechten Rand die Zeit des letzten Kommandos an. Somit ist die Zeitmessung bei der ZSH bereits integriert. Hinweis: ob die Zeit angezeigt wird, hängt von der Konfiguration der Z-Shell ab.
  2. Man kann aus der ZSH eine Bash starten und dort den Befehl time read absetzen.
  3. Oder man führt den Befehl time cat aus und bricht die Messung mit Ctrl+c ab.

Der nachfolgende Screenshot zeigt alle drei Alternativen:

Wie gewohnt, bietet die Z-Shell viel mehr Möglichkeiten als die Bash. Wer in der ZSH die Zeit messen möchte, verwendet mit Vorteil den Befehl time cat oder gibt sich mit der Sekunden-Anzeige zufrieden, die ZSH anzeigt, falls sie entsprechend konfiguriert wurde.

Quelle: https://www.mankier.com/1/time