はじめに
プログラムのパフォーマンスを評価する際、実行時間の計測は非常に重要です。Pythonでは、簡単に実行時間を計測する方法がいくつか提供されています。この記事では、それらの方法を詳しく解説します。
timeモジュールを使用した基本的な計測
Pythonのtime
モジュールを使用して、プログラムの実行にかかった時間を計測する基本的な方法です。
import time
start_time = time.time()
# 計測したい処理
time.sleep(1)
end_time = time.time()
elapsed_time = end_time - start_time
print(f"実行時間: {elapsed_time}秒")
timeitモジュールを使用した詳細な計測
timeit
モジュールは、小さなコードスニペットの実行時間をより正確に計測するために使用されます。
import timeit
elapsed_time = timeit.timeit('"-".join(str(n) for n in range(100))', number=10000)
print(f"実行時間: {elapsed_time}秒")
datetimeモジュールの使用
datetime
モジュールを使用して、より人間が読みやすい形式で実行時間を計測することもできます。
from datetime import datetime
start_time = datetime.now()
# 計測したい処理
time.sleep(1)
end_time = datetime.now()
elapsed_time = end_time - start_time
print(f"実行時間: {elapsed_time}")
応用例
実行時間の計測は、アルゴリズムの効率性の比較、サーバー応答時間の監視、科学的実験のデータ収集など、多様な場面で役立ちます。
アルゴリズムのパフォーマンス比較
異なるアルゴリズムの実行時間を計測し、どちらがより効率的かを比較する例です。
# アルゴリズムAの実行時間計測
start_time = time.time()
# アルゴリズムAの実行
time.sleep(0.5)
end_time = time.time()
print(f"アルゴリズムAの実行時間: {end_time - start_time}秒")
# アルゴリズムBの実行時間計測
start_time = time.time()
# アルゴリズムBの実行
time.sleep(0.8)
end_time = time.time()
print(f"アルゴリズムBの実行時間: {end_time - start_time}秒")
よくある質問
複数回の実行で平均時間を計測するには?
複数回実行して平均時間を計測するには、timeit
モジュールが最適です。そのnumber
引数で実行回数を指定できます。
非同期処理の実行時間はどう計測しますか?
非同期処理の実行時間を計測するには、非同期関数が完了するのを待つためにasyncio
モジュールと組み合わせて使用します。
計測の精度を上げるにはどうすればいいですか?
より高精度な計測が必要な場合は、システムのタイムスタンプを利用する方法や、プロファイリングツールの使用を検討してください。
コメント