【Python基礎】timeモジュールを使ってプログラムの処理時間を正確に計測する方法

  • URLをコピーしました!
目次

timeモジュール

前回、ElementTreeを使ったXMLファイルの解析方法を紹介しました。

今回はtimeモジュールを使ってプログラムの処理時間を正確に計測する方法を紹介します。

それでは始めていきましょう。

time.time()

まずは単にプログラムの処理時間を計測する方法です。

よく使われるのは処理前と処理後に「time.time()」で時間を取得し、引き算して処理時間とする方法です。

import time

starttime = time.time()

a = []
for i in range(10000000):
    a.append(i)
    
endtime= time.time()

print(starttime)
print(endtime)
print(endtime-starttime)

実行結果
1691322619.6151009
1691322621.2553449
1.6402440071105957

ただしこの「time.time()」は小数点で値を返してきますが、システムによっては1秒よりも高い精度で時刻が帰ってこないことがあります。

つまり場合によっては小数点の値は信用ならないということです。

time.perf_counter()

時間を正確に測りたい場合、「time.time()」の代わりに「time.perf_counter()」を用います。

「time.perf_counter()」では可能な限り高い分解能をもつように設定されているとのことです。

import time

starttime = time.perf_counter()

a = []
for i in range(10000000):
    a.append(i)
    
endtime= time.perf_counter()

print(starttime)
print(endtime)
print(endtime-starttime)

実行結果
252326.557575546
252328.43284663
1.8752710839908104

ちなみに単位が「秒」では使いにくい場合、「time.perf_counter_ns()」を使うと「ナノ秒」の単位にすることができます。

import time

starttime = time.perf_counter_ns()

a = []
for i in range(10000000):
    a.append(i)
    
endtime= time.perf_counter_ns()

print(starttime)
print(endtime)
print(endtime-starttime)

実行結果
252619341482530
252621156542071
1815059541

ということで精度の高い時間を取得したい場合は「time.perf_counter()」を使おうというお話でした。

次回はPythonのtimeモジュールを使って繰り返し処理の時間を一定にする方法を紹介します。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次