[解決!Python]timeモジュールで実行時間を計測するには解決!Python

timeモジュールのtime関数やperf_counter関数を使って、特定の処理の実行にかかった時間を計測する方法を紹介する。

» 2023年07月18日 05時00分 公開
[かわさきしんじDeep Insider編集部]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「解決!Python」のインデックス

連載目次

# 基本型
import time

start = time.time()  # 現在時刻(処理開始前)を取得

# 実行したい処理を記述

end = time.time()  # 現在時刻(処理完了後)を取得

time_diff = end - start  # 処理完了後の時刻から処理開始前の時刻を減算する
print(time_diff)  # 処理にかかった時間データを使用

def fact(x):
    result = 1
    if x == 0 or x == 1:
        return result  # 0!と1!の値は1
    for n in range(1, x+1):
        result *= n
    return result

start = time.time()

for n in range(10000):
    result = fact(1000)

end = time.time()

time_diff = end - start
print(time_diff)

# time.perf_counter関数を使う
start = time.perf_counter()

for n in range(10000):
    result = fact(1000)

end = time.perf_counter()

time_diff = end - start
print(time_diff)

# 処理時間を計測する関数を定義
def get_time_diff(func, *args, time_func=time.time, count=1000):
    result = None
    start = time_func()
    for _ in range(count):
        result = func(*args)
    end = time_func()
    time_diff = end - start
    return time_diff, result

time_diff, result = get_time_diff(fact, 1000)


timeモジュールのtime関数/perf_counter関数を使った実行時間の計測

 Pythonのtimeモジュールにはtime関数perf_counter関数がある。これらの関数を使うと、特定の処理にかかった時間を計測できる。

 その手順はおおよそ次のようになる。

  1. 処理を始める直前でtime.time関数やtime.perf_counter関数を呼び出して、処理開始時点の値を取得する
  2. 実行時間を計測したい処理を記述する
  3. 処理が終わった時点でtime.time関数やtime.perf_counter関数をもう一度呼び出して、処理終了時点の値を取得する
  4. 処理終了時点の値から処理開始時点の値を減算することで、処理にかかった時間が分かる

 これをコードにすると次のようになる。

import time

start = time.time()  # 現在時刻(処理開始前)を取得

# 実行したい処理を記述

end = time.time()  # 現在時刻(処理完了後)を取得

time_diff = end - start  # 処理完了後の時刻から処理開始前の時刻を減算する
print(time_diff)  # 処理にかかった時間データを使用


Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。