プログラムの実行時間を計測する方法
timeモジュールを利用する方法
timeモジュールをインポートして「time.time()」により時刻が取得できるので、その差分から所要時間を求められる。「time.time()」により取得した値はfloat型なので減算が可能である。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import time start = time.time() num = [1,1] for i in range(50): tmp = num[i+1] + num[i] num.append(tmp) print(i+3, tmp) print(num) elapsed_time = time.time() - start print ("elapsed_time:{0}".format(elapsed_time) + "[sec]") |
1 2 3 4 5 6 7 8 9 10 11 |
3 2 4 3 5 5 ... (略) ... 50 12586269025 51 20365011074 52 32951280099 [1, 1, 2, 3, 5, 8, 13, ...(略) elapsed_time:0.0019960403442382812[sec] |
なお、この方法で取得しているのはあくまでも時刻なので、期待する精度の高さによっては満足な時間解像度が得られない場合がある。time.time()の代わりに「time.perf_counter()」を用いることにより、プログラムが動いてから現実時間がどの程度経過したかを計測することができる。
timeモジュールで使える関数は以下の通り。
name | purpose | description | sleep |
---|---|---|---|
perf_counter() |
実時間の計測 | パフォーマンスカウンターの値 | 含める |
process_time() |
プロセスにおいて実際に稼働した時間の計測 | 現在のプロセスのシステムおよびユーザーの CPU 時間の合計値 | 含めない |
thread_time() |
スレッドにおいて実際に稼働した時間の計測 | 現在のスレッドのシステムおよびユーザーの CPU 時間の合計値 | 含めない |
monotonic() |
システム時刻の経過時間の計測 | システムを起動した後の経過時間 | 含める |
(出典:Python 実行時間計測メモ)