Pythonで時間計測する方法【time】
- 作成日: 2023-06-28
- 更新日: 2023-12-24
- カテゴリ: Python
Pythonで時間計測する方法は?
time
モジュールを使います。
time.time()
を使うと現在時刻を取得できます。
まず何かの処理の処理時間を計測するとして、処理前に時間を1つ変数に入れておきます。
それから実際に処理を実行します。
そして処理が終わったらその時点での時間を別の変数に入れます。
そして2つの変数の差分を取ると処理にかかった時間がわかるようになります。
コードにすると以下になります。
import time
start = time.time()
time.sleep(1)
end = time.time()
dif = end - start
print(dif)
# 1.0009393692016602
参照
time --- 時刻データへのアクセスと変換 — Python 3.7.17 ドキュメント
time.monotonic()で計測
time.monotonic()
はモノトニッククロックの値(小数点以下がミリ秒)を返します。
この値はシステムクロックの更新の影響を受けません。
モノトニック時間で重要な点は値ではなく、その値が厳密に増加していくことが保証されているという点です。
import time
start = time.monotonic()
time.sleep(1)
end = time.monotonic()
dif = end - start
print(dif)
# 1.0
time.monotonic_ns()で計測
これはtime.monotonic()
とほぼ同じですが、ナノ秒単位の時刻を返す点が違います。
import time
start = time.monotonic_ns()
time.sleep(1)
end = time.monotonic_ns()
dif = end - start
print(dif)
# 1015000000
time.perf_counter()で計測
time.perf_counter()
は計測に使える関数で、これはパフォーマンスカウンターの値(小数点以下がミリ秒)を返します。
このクロックは短時間の計測にも耐えられるように可能な限り高い分解能を持っています。
import time
start = time.perf_counter()
time.sleep(1)
end = time.perf_counter()
dif = end - start
print(dif)
# 0.9998244999999999
time.perf_counter_ns()で計測
time.perf_counter_ns()
はtime.perf_counter()
とほぼ同じですが、ナノ秒単位の時刻を返します。
import time
start = time.perf_counter_ns()
time.sleep(1)
end = time.perf_counter_ns()
dif = end - start
print(dif)
# 999662800
time.process_time()で計測
ちなみにtime.process_time()
という関数もあります。
これは現在のプロセスのシステムおよびユーザーCPU時間の合計値(小数点以下がミリ秒)を返します。
これはスリープ中の経過時間を含めないので、サンプルコードのようなtime.sleep()
を使ったコードでは期待した結果が得られません。
import time
start = time.process_time()
time.sleep(1)
end = time.process_time()
dif = end - start
print(dif)
# 0.0
しかしループ処理のようなスリープを使っていない処理の計測には使えます。
import time
start = time.process_time()
for i in range(100000000):
pass
end = time.process_time()
dif = end - start
print(dif)
# 2.4375
time.process_time_ns()で計測
これはtime.process_time()
とほぼ同じですが結果をナノ秒単位で返す点が違います。
import time
start = time.process_time_ns()
for i in range(100000000):
pass
end = time.process_time_ns()
dif = end - start
print(dif)
# 2609375000
おわりに
今回はPythonで時間計測をする方法を解説しました。
なにか参考になれば幸いです。
🦝 < 時間計測!
🦝 < この処理は何秒かかる?