プログラムの繰り返しをループで実行できます。合計時間を反復回数で割ります:
time for i in {1..10}; do sleep 1; done
real 0m10.052s
user 0m0.005s
sys 0m0.018s
これを正確に行う multitime と呼ばれるツールがあります:コマンドを数回実行し、所要時間を測定します (平均時間、最小/最大時間、および中央値が自動的に計算される実/ユーザー/システム)
たとえば、同様のスクリプトを 100 回測定する場合:
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
これは古いですが、以前に使用したコマンドを探していたときに、Google で非常に高く表示されましたが、見つかりませんでした。とにかく、これを行う私の好みの方法は次のとおりです。
perf stat -r 10 -B sleep 1
これにより、最後に平均実行時間を含むかなりの詳細が得られます:
1.002248382 seconds time elapsed ( +- 0.01% )