Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでタイマーティック(経過時間)を取得する方法を解説

Pythonで処理の実行時間やタイマーティックを計測したい場合、timeモジュールのclock()関数を使用します。公式ドキュメントでは、この関数はベンチマーク(性能測定)目的での使用が推奨されています。

使用例

以下は、コードの実行に要したCPU時間を計測するサンプルです。

import time
t0 = time.clock()
print("Hello")
t1 = time.clock() - t0
print("Time elapsed: ", t1)  # 経過したCPU秒数(浮動小数点数)

実行結果

このコードを実行すると、次のような出力が得られます。

Time elapsed: 0.0009403145040156798

システムによる精度の違い

計測精度は、OSやハードウェアの内部クロック設定(1秒あたりのティック数)によって異なります。ただし、一般的には誤差は20ミリ秒未満に収まります。

プラットフォームごとの挙動の違い

time.clock()は、実行環境によって返す値の意味が異なる点に注意が必要です。

  • Unix系(Linux、macOSなど)の場合: 現在のプロセッサ時間を秒単位の浮動小数点数として返します。その精度や「プロセッサ時間」の正確な定義は、同名のC言語関数に依存します。いずれにせよ、Pythonコードのベンチマークやアルゴリズムの計時には、この関数が適しています。
  • Windowsの場合: Win32 APIのQueryPerformanceCounter()に基づき、この関数を最初に呼び出してからの実時間(ウォールクロック時間)を秒単位の浮動小数点数で返します。分解能は通常1マイクロ秒より高く、非常に精密です。

注意:新しいPythonバージョンでの代替手段

time.clock()はPython 3.3で非推奨となり、Python 3.8で削除されました。最新のPythonを使用している場合は、用途に応じて以下の関数を使うことが推奨されます。

  • time.perf_counter():最も高精度な実時間(ウォールクロック)計測に適しており、ベンチマークの標準的な選択肢です。
  • time.process_time():スリープ時間を除いたプロセスのCPU時間を計測できます。

例えば、time.perf_counter()を使った計測は以下のように書けます。

import time
t0 = time.perf_counter()
print("Hello")
elapsed = time.perf_counter() - t0
print("Time elapsed: ", elapsed)

このように、環境やPythonのバージョンに応じて適切な計測関数を選択することで、正確なパフォーマンス測定が可能になります。

  1. Python関数に辞書を引数として渡す方法をわかりやすく解説

    Pythonでは、辞書(dict)をそのまま関数の引数として渡すことができます。関数の中では、受け取った辞書のキーと値のペアを順番に取り出して処理し、結果を出力することが可能です。 以下のコードでは、辞書 d を関数 f の引数として渡し、関数内で各キーと値のペアに対して「値 × 2」の計算を行っています。 例 d = {a: 1, b: 2, c: 3} def f(dict): for k, v in dict.items(): print(k, 2 * v) f(d) 出力 a 2 b 4 c 6 コードの解説 辞書 d には、キー a・b・c に対して、そ

  2. Pythonで関数を定義する方法!defキーワードの基本構文と使い方を解説

    Pythonの関数とは?関数(function)とは、名前を指定して呼び出すことができる、ひとまとまりのコードのことです。関数には処理の対象となるデータ(引数・パラメータ)を渡すことができ、必要に応じて結果(戻り値)を返すことも可能です。なお、関数に渡されるデータはすべて明示的に指定する必要があります。関数を定義する基本構文def function_name():    # 実行したい処理をここに書くPythonでは、defキーワードに続けて半角スペース、関数名、括弧「()」、そしてコロン「:」を記述することで関数を定義します。その次の行には、インデント