Sie können Iterationen des Programms in einer Schleife ausführen; und teilen Sie die Gesamtzeit durch die Anzahl der Iterationen:
time for i in {1..10}; do sleep 1; done
real 0m10.052s
user 0m0.005s
sys 0m0.018s
Es gibt ein Tool namens Multitime, das genau das tut:einen Befehl mehrmals ausführen und messen, wie lange es dauert (real/Benutzer/System mit automatisch berechneter mittlerer, minimaler/maximaler und mittlerer Zeit)
Zum Beispiel, um ein ähnliches Skript 100 Mal zu messen:
multitime -q -n 100 "fact1.sh"
===> multitime results
1: -q fact1.sh
Mean Std.Dev. Min Median Max
real 0.122 0.032 0.086 0.116 0.171
user 0.148 0.044 0.096 0.137 0.223
sys 0.023 0.019 0.000 0.014 0.061
Das ist alt, aber es tauchte bei Google so weit oben auf, als ich nach einem Befehl suchte, den ich zuvor verwendet hatte, aber nicht finden konnte. Wie auch immer, mein bevorzugter Weg, dies zu tun, ist:
perf stat -r 10 -B sleep 1
Dies gibt ziemlich viele Details, einschließlich der durchschnittlichen Ausführungszeit ganz am Ende:
1.002248382 seconds time elapsed ( +- 0.01% )