Python

【Python】処理時間の計測

処理時間の計測には、timeモジュールのtime()関数 もしくは perf_counter()関数を時間計測する2か所で実行し、取得した値の差を計算することで、処理時間(秒単位)が取得できます。

 

サンプルプログラム

import time

print("time")
for j in range(5):
    start = time.time()
    time.sleep(1)
    print(time.time() - start)

print("perf_counter")
for j in range(5):
    start = time.perf_counter()
    time.sleep(1)
    print(time.perf_counter() - start)

実行結果

Python 処理時間の計測

 

time()関数 と perf_counter()関数 とでは、perf_counter()関数の方が高精度らしいのですが、上記のプログラムでは、差がよく分からず。。

注意点

Visual Studio や Visual Studio Codeを使っている場合、デバッグの開始デバッグなしで開始の2種類の実行方法があります。

(Visual Studioの場合)

Python 処理時間の計測

(Visual Studio Codeの場合)

Python 処理時間の計測

 

デバッグのあり/なしで処理時間に大きな差が出るので、処理時間を計測する場合は、デバッグなしで実行を選択して実行してください。

 

例えば、以下のようなプログラムを実行し、処理時間を比較すると、

import time

sum = 0
start = time.perf_counter()

for i in range(10000000):
    sum += 1
    
print(time.perf_counter() - start)

処理時間(秒)

デバッグの開始 デバッグなしで実行
Visual Studio 5.0749325 0.8275141
Visual Studio Code 1.6109771 0.7664662999999999

 

Pythonはビルドするわけでは無いので、デバッグあり/なし は処理時間に関係ないと思っていたのですが、特にVisual Studioでは処理時間が大きく異なるので、注意が必要ですね。

コメント

タイトルとURLをコピーしました