ここではipythonの対話シェル上で、計算の実行時間を測る方法を記載します。
ipythonの対話シェルで
%timeit (関数名)
で計測できます。
それだけです。
例えば
In [2]: %timeit 5**100
323 ns ± 3.37 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
5の100乗の計算は平均323 ns(10の-6乗 秒です)
In [3]: def test():
...: A, B = range(1000), range(1000)
...: for i in A:
...: for j in B:
...: _ = i * j
...: return()
...:
In [4]: %timeit test()
40 ms ± 771 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
100万回かけ算をやる関数を書いて、計測すると
40 msです。
この%timeitというのはipythonに入っている
ビルドインマジックコマンド
というものです。
loopとrunsというコメントが出てきますが、
n回のloopを実行して平均と誤差を計算して、
そのloopをr回行ってそのベストをとります。
デフォルトではnは結果が安定するまで行い、
rは7回行うことになっています。
これらは%timeitのあとに記載すると指定できます。
In [4]: %timeit -n 5 test()
44.5 ms ± 3.82 ms per loop (mean ± std. dev. of 7 runs, 5 loops each)
In [5]: %timeit -n 5 -r 10 test()
41.1 ms ± 3.05 ms per loop (mean ± std. dev. of 10 runs, 5 loops each)
In [7]: %timeit -n 1 -r 1 test()
72.6 ms ± 0 ns per loop (mean ± std. dev. of 1 run, 1 loop each)
1にすると当然標準誤差は0になりますが、値がけっこうかわりますね。
参考 Built-in magic commandas -IPython