処理時間の計測には、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)
実行結果
time()関数 と perf_counter()関数 とでは、perf_counter()関数の方が高精度らしいのですが、上記のプログラムでは、差がよく分からず。。
注意点
Visual Studio や Visual Studio Codeを使っている場合、デバッグの開始とデバッグなしで開始の2種類の実行方法があります。
(Visual Studioの場合)
(Visual Studio Codeの場合)
デバッグのあり/なしで処理時間に大きな差が出るので、処理時間を計測する場合は、デバッグなしで実行を選択して実行してください。
例えば、以下のようなプログラムを実行し、処理時間を比較すると、
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では処理時間が大きく異なるので、注意が必要ですね。
コメント