Python 時間計測

いつも調べるので備忘録として徐々に記述していきます。

time.time()

  • 一番手軽。
  • 単位は整数部分が秒で、小数点以下を入れるとns単位で計測。
  • 使用するには、import timeをする。
  • 以下コードでは、整数部分が秒、小数点以下はnsまで表示されます。
import time
start_time=time.time()
# **************************************
# ここに実行時間を計測するコードを記述する。
# **************************************
elapsed_time= time.time()-start_time
print(elapsed_time)

分や時間単位になるとns単位でなく分と秒で表示した方が見やすいので、上記コードに以下を追加したら見やすくなります。

import math
minutes, seconds = divmod(math.ceil(elapsed_time), 60)
spent_time = f"{minutes}分{seconds}秒"
print("実行時間:", spent_time)

毎回実行のログを残す場合は以下を追加する。 log.txtはこのプログラムを実行するディレクトリに作成しておかないといけない。

try:
    with open("log.txt", 'a') as f:
        f.write(spent_time)
    print("実行時間が log.txt に記録されました。")
except Exception as e:
    print(f"ログの記録中にエラーが発生しました: {e}")

time.perf_counter

time.perf_counterがの方が高精度(通信など相手の待ち時間がある場合や他のプロセスとの兼ね合いで実際にどのくらいかかるか計測する場合に使う)

time.perf_counterもtime.で始まるのでimport timeで実行可能。

time.perf_counter_ns

perf_counter_ns()はns単位で表示される

timeit.timeit

timeit.timeit()は関数やsnipetなどの実行時間計測用に使う。

time.process_time

time.process_time() CPUを使った時間だけを計測する。(()内に計測する実際の引数の入ったFunction名を記述しそのFunctionの実際の実行時間を計測)

コメント