コマンドラインで実行できるので、プログラムに計測用のコードを書かなくてよくて便利。
計測方法
自分の環境だと、実行したいpythonファイル(hoge.py)がおいてあるディレクトリで、下記のようにやると動きます。(hoge.pyのtest関数の実行速度を計測したい場合)
$ python -m timeit 'import hoge' 'hoge.test()'
計測結果の見方
試しに、ここで作成した素数を出すコードの速度を計測してみます。ファイル名は、eratos.pyです。
$ python -m timeit 'import eratos' 'eratos.prime(100000)'
結果
100 loops, best of 3: 17.5 msec per loop
結果の見方がややこしい。 参考:ライブラリ:timeit
-nは、1試行あたりの実行回数。-rは試行回数らしい。下記のように指定できる。
$ python -m timeit -n 10 -r 5 'import eratos' 'eratos.prime(100000)' 10 loops, best of 5: 17.4 msec per loop
上記の場合は、処理を10回連続で実行したときの時間を5回計測し、そのうちの最小時間を返してくれているらしい。デフォルトだと連続で100回実行して、ランダムなタイミング(?)で3回だけ時間を計測して、3回のうち一番時間が短かった結果を返してくれているということかな?まあ何しろこれで実行時間が簡単に計測できるので便利です。
時間の単位は、下記になります。
単位名 | 秒 | 単位 | |
---|---|---|---|
ナノ秒 | 1,000,000,000 | nsec(ns) | 10の-9乗 s |
マイクロ秒 | 1,000,000 | usec(µs) | 10の-6乗 s |
ミリ秒 | 1,000 | msec(ms) | 10の-3乗 s |
秒 | 1 | sec(s) | 1s |