timeモジュールとは
Pythonのtime
モジュールは、時間に関連するさまざまな関数を提供します。これには、現在の時間を取得したり、プログラムを一時停止したり、時間を形式化したりする機能が含まれます。
以下に、time
モジュールの主な関数をいくつか紹介します:
time()
: 1970年1月1日0時0分からの経過秒数(エポックからの秒数)を返します。sleep(seconds)
: プログラムを指定した秒数だけ一時停止します。ctime(seconds)
: エポックから指定した秒数後の時間を文字列で返します。gmtime(seconds)
: エポックから指定した秒数後の時間をstruct_time形式で返します。
これらの関数を使用することで、Pythonプログラム内で時間に関連するタスクを効率的に処理することができます。特に、処理時間の計測や待機処理などによく使用されます。次のセクションでは、これらの関数を使って処理時間を計測する方法について詳しく説明します。
timeモジュールで処理時間を計測する方法
Pythonのtime
モジュールを使用して、コードの実行時間を計測することができます。以下に、その基本的な手順を示します。
- 開始時間の記録:コードの実行前に
time.time()
を呼び出し、その結果を変数に保存します。これが処理の開始時間となります。
import time
start_time = time.time()
- 処理の実行:計測したい処理を実行します。
# ここに計測したい処理を書く
- 終了時間の記録と経過時間の計算:コードの実行後に再度
time.time()
を呼び出し、その結果から開始時間を引くことで、処理の経過時間(秒単位)を計算します。
end_time = time.time()
elapsed_time = end_time - start_time
print(f"Elapsed time: {elapsed_time} seconds")
この方法は、単純な処理時間の計測には適していますが、より正確な計測や複雑なベンチマークテストを行う場合には、timeit
モジュールやtimeit
マジックコマンドを使用することを検討してみてください。これらについては、次のセクションで詳しく説明します。
timeitマジックの使い方
Jupyter NotebookやIPythonなどの環境では、timeit
マジックコマンドを使用してコードの実行時間を簡単に計測することができます。timeit
マジックコマンドは、コードの実行時間を高精度で計測するための特別な機能で、一行のコードや複数行のコードの実行時間を計測することができます。
一行のコードの実行時間を計測する
一行のコードの実行時間を計測するには、%timeit
を使用します。以下に例を示します。
%timeit sum(range(100))
このコマンドは、sum(range(100))
の実行時間を計測し、その結果を出力します。
複数行のコードの実行時間を計測する
複数行のコードの実行時間を計測するには、%%timeit
を使用します。以下に例を示します。
%%timeit
total = 0
for i in range(100):
total += i
このコマンドは、指定した複数行のコードの実行時間を計測し、その結果を出力します。
timeit
マジックコマンドは、コードの実行時間を繰り返し計測し、最も代表的な実行時間を報告するため、高精度の計測が可能です。ただし、大規模なデータセットや時間のかかる処理に対しては、適切な回数の繰り返しを設定することが重要です。次のセクションでは、コマンドラインで処理時間を計測する方法について説明します。
コマンドラインで処理時間を計測する方法
コマンドラインでは、time
コマンドを使用してスクリプトやコマンドの実行時間を計測することができます。time
コマンドは、ユーザー時間、システム時間、および実際の経過時間を報告します。
以下に、Pythonスクリプトの実行時間を計測する基本的な手順を示します。
- Pythonスクリプトの作成:まず、実行時間を計測したいPythonスクリプトを作成します。以下に、
sum(range(1000000))
の実行時間を計測するスクリプトの例を示します。
# filename: script.py
print(sum(range(1000000)))
time
コマンドの使用:次に、コマンドラインでtime
コマンドを使用してスクリプトを実行します。以下に、script.py
の実行時間を計測するコマンドの例を示します。
$ time python script.py
このコマンドは、スクリプトの実行時間を計測し、その結果を出力します。
time
コマンドは、シェルスクリプトや他のプログラムの実行時間を簡単に計測するための便利なツールです。ただし、より詳細なプロファイリングを行う場合には、専用のプロファイリングツールを使用することを検討してみてください。これについては、次のセクションで詳しく説明します。