目次
timeモジュール
前回、ElementTreeを使ったXMLファイルの解析方法を紹介しました。
【Python基礎】ElementTreeを使ったXMLファイルの解析方法
ElementTree 前回、bar_chart_raceのオプションを色々いじってみました。 今回はXMLファイルの解析方法を紹介しますが、実はXMLファイルの解析は前にBeautifulSoupを使…
今回は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モジュールを使って繰り返し処理の時間を一定にする方法を紹介します。
【Python基礎】timeモジュールを使って一定時間ごとに繰り返し処理する方法
timeモジュール 前回、Pythonでtimeモジュールを使ってプログラムの処理時間を正確に計測する方法を紹介しました。 今回はtimeモジュールを使って一定時間ごとに繰り返…
ではでは今回はこんな感じで。
コメント