コマンド実行時間を測定する方法
コマンド実行時間を測定する方法について、いくつか書きたいと思います。
time
Linuxのコマンドに一つです。
time a simple command or give resource usage
コマンドを実行させ、userとsysの領域での所要時間、合計所要時間を測定できます。
$ time sleep 1
real 0m1.002s
user 0m0.001s
sys 0m0.000s
$ time echo 'Hello World!'
Hello World!
real 0m0.000s
user 0m0.000s
sys 0m0.000s
簡単にプログラムの実行時間を調べる際に、便利です。
単純ということが限界ではありますが。
bench
もうちょっと調べてみましょう。
This project provides the bench command-line tool, which is a more powerful alternative to the time command. Use bench to benchmark a command using Haskell’s criterion library.
コマンドを数回実行できて、結果も詳しくなります。
$ bench 'sleep 1' # Don't forget to quote the command line
benchmarking sleep 1
time 1.003 s (1.002 s .. 1.003 s)
1.000 R² (1.000 R² .. 1.000 R²)
mean 1.003 s (1.003 s .. 1.003 s)
std dev 92.92 μs (0.0 s .. 101.8 μs)
variance introduced by outliers: 19% (moderately inflated)
$ bench true
benchmarking true
time 410.3 μs (382.3 μs .. 443.3 μs)
0.974 R² (0.961 R² .. 0.987 R²)
mean 420.7 μs (406.8 μs .. 435.7 μs)
std dev 47.69 μs (40.09 μs .. 57.91 μs)
variance introduced by outliers: 81% (severely inflated)
ファイルでの出力も可能です。
HTML出力の例
hyperfine
別の方法もあります。
A command-line benchmarking tool.
コマンドの数回実行、詳しい情報に加え、見やすい結果も得られます。