らふのプログラミングメモ

プログラミングメモです。

プログラム内の処理にかかる時間を計測してみよう

プログラミングをやっていると、
「この処理ってどのくらい時間かかってるの?」
と思ったことがあるかと思います。

また処理の実行時間を測って、Aの処理とBの処理、どっちのほうが早いのか?
など確認したい時もあるかと思います。

そんな時に実行時間を計測する方法をピックアップして
まとめたいと思います。

まずはtime.time() を使ってみよう

例: 空のリスト(y)を準備して、100万個のデータをappendしてみよう

  • time.time()の使い方
import time()
time.time()

これで今の時間を取得することができます。

  • 実際やってみよう
import time
#スタート時のシステム時間を入手
before = time.time()

y = []
for i in range(1000000):
    y.append(i)

#for文終了時のシステム時間を入手
after = time.time()

t = after - before

結果:0.11580109596252441 s

time.perf_counter()を使ってみよう

先ほどと同じ例を使ってやってみよう。

  • time.perf_counter()
import time()
time.perf_counter()

これで今の時間を取得することができます。

import time
#スタート時のシステム時間を入手
before = time.perf_counter()

y = []
for i in range(1000000):
    y.append(i)

#for文終了時のシステム時間を入手
after = time.perf_counter()

t = after - before

結果:0.11933905400007916 s

どちらを使った方がいいの?

より正確な時間を計測したいのであれば、
time.perf_counter()を使ったほうがいいそうです
(time.perf_counter()のほうがより正確なシステム時間を計測できるため)

ですが、大まかな処理の時間を知りたいだけであれば、
どちらを使っても大丈夫ではないかな。と思います。
(それより、複数回実行し平均値を取って比較したほうがいいかな?と思います)

<最終更新日:2021/09/01>
2021/09/01 投稿