処理時間を計測するには

NO IMAGE

実際にプログラムを作っていると、いやに処理時間がかかっているな…と感じることがあります。

そういう時は、処理に実際にかかっている時間を計測してみましょう。

import time

#計測開始時間
starttime = time.perf_counter()

# 計測したい処理をここに書く

#計測終了時間
endtime = time.perf_counter()

#かかった時間を出力する
print(endtime-starttime)

time.perf_counter()を使うと、実行された時刻が取得できます。これを処理開始前、開始後にそれぞれ取得し、開始後 – 開始前 を計算することで、かかった時間を算出しています。

取得できる値は浮動小数点値で、秒を取得できます。

画像変換の処理時間を計算するサンプルコード

from PIL import Image
import numpy as np
import time

# 画像を開く
img = Image.open('input.jpg')

# 画像を書き換え可能な配列に変換
a = np.copy(np.asarray(img))

#計測開始時間
starttime = time.perf_counter()

# ピクセルをモノクロに変換
for col in a:
    for p in col:
        ave = np.average(p) #全色の平均値を求める
        p[:] = ave

# 計測終了時間
endtime = time.perf_counter()
# 所要時間
print(endtime-starttime)

# 配列を画像に変換
img = Image.fromarray(a)

# 反転した画像を保存
img.save('output.jpg')
# 37.352361800000004

画像をモノクロに変換する計算時間を計算してみました。

結果は約37秒でした。