Python timeit

timeit モジュール

timeit モジュールは、小さなコードスニペットの実行時間を測定するためのツールです。このモジュールは、高精度なタイミング情報を提供し、コードのパフォーマンスを評価するのに役立ちます。

9.1 基本的な使い方

例:基本的な timeit の使用

以下の例では、timeit.timeit 関数を使用してコードスニペットの実行時間を測定します。

import timeit

# 測定対象のコードスニペット
code_to_test = """
a = sum(range(1000))
"""

# 実行時間を測定
execution_time = timeit.timeit(stmt=code_to_test, number=1000)
print(f"実行時間: {execution_time} 秒")

9.2 関数のパフォーマンス測定

例:関数の実行時間を測定

以下の例では、timeit を使用して特定の関数の実行時間を測定します。

import timeit

def my_function():
    a = sum(range(1000))

# 実行時間を測定
execution_time = timeit.timeit(stmt=my_function, number=1000)
print(f"関数の実行時間: {execution_time} 秒")

9.3 環境設定

timeit では、特定のセットアップコードやグローバル変数を使用してコードスニペットを実行することができます。

例:セットアップコードを使用

import timeit

setup_code = """
import numpy as np
"""

code_to_test = """
a = np.sum(np.arange(1000))
"""

# 実行時間を測定
execution_time = timeit.timeit(stmt=code_to_test, setup=setup_code, number=1000)
print(f"実行時間: {execution_time} 秒")

9.4 コマンドラインでの使用

timeit は、コマンドラインからも使用することができます。

例:コマンドラインでの timeit

python -m timeit -n 1000 -s "import numpy as np" "np.sum(np.arange(1000))"

このコマンドは、NumPyの配列の合計を計算するコードの実行時間を測定します。-n オプションは実行回数を指定し、-s オプションはセットアップコードを指定します。

9.5 timeit オブジェクト

timeit.Timer オブジェクトを使用すると、さらに柔軟なタイミング測定が可能です。

例:timeit.Timer オブジェクトの使用

import timeit

# Timerオブジェクトを作成
timer = timeit.Timer(stmt="a = sum(range(1000))")

# 実行時間を測定
execution_time = timer.timeit(number=1000)
print(f"Timerオブジェクトの実行時間: {execution_time} 秒")

まとめ

timeit モジュールは、コードスニペットや関数の実行時間を高精度で測定するための強力なツールです。セットアップコードやグローバル変数を使用して柔軟に測定を行うことができ、コマンドラインからも利用可能です。

この記事が気に入ったらサポートをしてみませんか?