È possibile eseguire iterazioni del programma in un ciclo; e dividi il tempo totale per il numero di iterazioni:
time for i in {1..10}; do sleep 1; done
real 0m10.052s
user 0m0.005s
sys 0m0.018s
esiste uno strumento chiamato multitime che fa esattamente questo:eseguire un comando più volte, misurando il tempo necessario (reale/utente/sistema con tempo medio, minimo/massimo e mediano calcolato automaticamente)
Ad esempio, per misurare uno script simile 100 volte:
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
Questo è vecchio ma è arrivato così in alto su Google quando stavo cercando un comando che avevo usato in precedenza ma che non riuscivo a trovare. Ad ogni modo, il mio modo preferito per farlo è:
perf stat -r 10 -B sleep 1
Questo fornisce un bel po' di dettagli incluso il tempo medio di esecuzione proprio alla fine:
1.002248382 seconds time elapsed ( +- 0.01% )