Python で経過時間を計算する

Muhammad Maisam Abbas 2023年1月30日
  1. Python の time モジュールの time() 関数を使用して関数の経過時間を計算する
  2. Python の time モジュールの perf_counter() 関数を使用して関数の経過時間を計算する
  3. Python の time モジュールの process_time() 関数を使用して関数の経過時間を計算する
Python で経過時間を計算する

このチュートリアルでは、Python でプログラムの実行時間を計算する方法について説明します。

time モジュールは、多くの時間関連関数を含む組み込みモジュールです。時間モジュール内のいくつかのメソッドを使用して、Python でプログラムの実行時間を計算できます。これらの方法については、以下で説明します。

Python の time モジュールの time() 関数を使用して関数の経過時間を計算する

time() 関数は、現在の時刻を秒単位で示します。現在の時刻を秒単位で含む float 値を返します。次のコード例は、Python の time() 関数を使用して関数の実行時間を計算する方法を示しています。

import time

start = time.time()

print("The time used to execute this is given below")

end = time.time()

print(end - start)

出力:

The time used to execute this is given below
0.00011444091796875

上記のコードでは、最初に time() 関数を使用して開始時刻を含む start 変数を初期化し、次に time() 関数を使用して print() ステートメントの後に end 変数を初期化します。次に、end から start を差し引くことにより、合計実行時間を計算します。

Python の time モジュールの perf_counter() 関数を使用して関数の経過時間を計算する

perf_counter() 関数は、システム時間の最も正確な測定値を提供します。perf_counter() 関数はシステム全体の時間を返し、スリープ時間を考慮に入れます。perf_counter() 関数を使用して、関数の実行時間を計算することもできます。次のコード例は、Python の perf_counter() 関数を使用して関数の実行時間を計算する方法を示しています。

import time

start = time.perf_counter()

print("This time is being calculated")

end = time.perf_counter()

print(end - start)

出力:

This time is being calculated
0.00013678300001629395

上記のコードでは、最初に perf_counter() 関数を使用して開始時刻を含む start 変数を初期化し、次に perf_counter() 関数を使用して print() ステートメントの後に end 変数を初期化します。次に、end から start を差し引くことにより、合計実行時間を計算します。

Python の time モジュールの process_time() 関数を使用して関数の経過時間を計算する

perf_counter() 関数は、マシンのバックグラウンドで実行されている他のプログラムの影響を受けます。また、スリープ時間もカウントします。したがって、プログラムの実行時間を測定するのには理想的ではありません。

perf_counter() 関数を使用するためのベストプラクティスは、それを数回実行することです。そうすれば、平均時間によって、実行時間のかなり正確な見積もりが得られます。

別のアプローチは、process_time() 関数を使用することです。process_time() 関数は、プログラムの実行時間を見積もるために特別に設計されています。マシンのバックグラウンドで実行されている他のプログラムの影響を受けません。また、スリープ時間もカウントされません。

process_time() 関数は、システムとプログラムのユーザーCPU 時間の合計を含む float 値を返します。次のコード例は、Python の process_time() 関数を使用して関数の実行時間を計算する方法を示しています。

import time

start = time.process_time()

print("This time is being calculated")

end = time.process_time()

print(end - start)

出力:

This time is being calculated
0.000991254000000108

上記のコードでは、最初に process_time() 関数を使用して開始時刻を含む start 変数を初期化し、次に process_time() 関数を使用して print() ステートメントの後に end 変数を初期化します。次に、end から start を差し引くことにより、合計実行時間を計算します。

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

関連記事 - Python Time