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のバージョンに応じて適切な計測関数を選択することで、正確なパフォーマンス測定が可能になります。
-
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 に対して、そ
-
Pythonで関数を定義する方法!defキーワードの基本構文と使い方を解説
Pythonの関数とは?関数(function)とは、名前を指定して呼び出すことができる、ひとまとまりのコードのことです。関数には処理の対象となるデータ(引数・パラメータ)を渡すことができ、必要に応じて結果(戻り値)を返すことも可能です。なお、関数に渡されるデータはすべて明示的に指定する必要があります。関数を定義する基本構文def function_name(): # 実行したい処理をここに書くPythonでは、defキーワードに続けて半角スペース、関数名、括弧「()」、そしてコロン「:」を記述することで関数を定義します。その次の行には、インデント