Puede ejecutar iteraciones del programa en un bucle; y divide el tiempo total por el número de iteraciones:
time for i in {1..10}; do sleep 1; done
real 0m10.052s
user 0m0.005s
sys 0m0.018s
hay una herramienta llamada multitime que hace exactamente esto:ejecutar un comando varias veces, midiendo cuánto tiempo lleva (real/usuario/sistema con tiempo medio, mínimo/máximo y medio calculado automáticamente)
Por ejemplo, para medir un guión similar 100 veces:
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
Esto es antiguo, pero apareció muy alto en Google cuando estaba buscando un comando que usé anteriormente pero que no pude encontrar. De todos modos, mi forma preferida de hacer esto es:
perf stat -r 10 -B sleep 1
Esto brinda bastantes detalles, incluido el tiempo promedio de ejecución justo al final:
1.002248382 seconds time elapsed ( +- 0.01% )