Axels Blog
Bash: Messen in Sekunden und Millisekunden
13.04.2022 - 22:16Ich hatte bereits einmal einen ähnlichen Blog Eintrag geschrieben:
Bash: Ausführungszeit eines Kommandos in Millisekunden messen
Jene Methode basierte auf dem Parsing der Ausgabe des time Kommandos.
Nachfolgendes Beispiel-Snippet nimmt einen anderen Ansatz: Das Date-Kommando kann mit %N den Anteil der Nanosekunden zurückgeben. Man nimmt das date Kommando, um einen initialen Zeitstempel zu speichern. Zur Ausgabe der vergangenen Zeit liest man die Zeit erneut aus und berechnet die Differenz. Dazu könnte man bc hernehmen, aber das ist per Default auf einem Linux-Server vorinstalliert. Daher ist mal hier eine Variante mit awk:
export CW_timer_start # Step 1 # start/ reset timer # no parameter is required function start_timer(){ CW_timer_start=$( date +%s.%N ) } # Step 2 (as often you want) # get time in sec and milliseconds since start # no parameter is required function show_timer(){ local timer_end=$( date +%s.%N ) local totaltime=$( awk "BEGIN {print $timer_end - $CW_timer_start }" ) local sec_time=$( echo $totaltime | cut -f 1 -d "." ) test -z "$sec_time" && sec_time=0 local ms_time=$( echo $totaltime | cut -f 2 -d "." | cut -c 1-3 ) echo "$sec_time.$ms_time sec" }
Die Funktion start_timer setzt den initialen Wert bzw. ein Reset.
Die Funktion show_timer zeigt die vergangene Zeit in Sekunden + Punkt + 3stellige Millisekunden an.
Ein Snippet zum Messen sieht grob etwa so aus:
# reset timer start_timer # hier irgendwas machen # sei kreativ :-) # Ausführungszeit: echo "verbrauchte Zeit: $( show_timer )"
Die Ausgabe ist dann soetwas, wie:
verbrauchte Zeit: 0.014 sec
Blog-Kategorieen: Computer Programmierung Shell
Letzte Blog-Einträge:
Axels Blog13.04.2022 | (22:16 Uhr) | Bash: Messen in Sekunden und Millisekunden |
25.03.2022 | (0:38 Uhr) | Thüringer Alpen |
22.03.2022 | (23:55 Uhr) | Mysqldump - trotz Exitcode 0 keine Daten im Dumpfile |
10.03.2022 | (1:29 Uhr) | 20 Jahre Axels Cron-wrapper |
21.02.2022 | (23:40 Uhr) | PHP CLI und FPM-Service: /tmp besser meiden |