Vous pouvez exécuter des itérations du programme en boucle; et divisez le temps total par le nombre d'itérations :
time for i in {1..10}; do sleep 1; done
real 0m10.052s
user 0m0.005s
sys 0m0.018s
il existe un outil appelé multitime qui fait exactement cela :exécuter une commande plusieurs fois, mesurer le temps que cela prend (réel/utilisateur/système avec temps moyen, min/max et médian calculé automatiquement)
Par exemple, pour mesurer un script similaire 100 fois :
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
C'est vieux mais c'est arrivé si haut sur google quand je cherchais une commande que j'utilisais auparavant mais que je n'arrivais pas à trouver. Quoi qu'il en soit, ma façon préférée de procéder est la suivante :
perf stat -r 10 -B sleep 1
Cela donne pas mal de détails, y compris le temps d'exécution moyen à la fin :
1.002248382 seconds time elapsed ( +- 0.01% )