工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python timeit():実行時間測定の実例付きガイド

Python timeit():実行時間測定の実例付きガイド

Python timeit()は、小さなコードスニペットの実行時間を高精度で測定するための組み込みモジュールです。デフォルトで文を100万回実行し、最速の実行時間を報告するため、異なる実装のパフォーマンス比較に役立ちます。

構文

timeit.timeit(stmt, setup, timer, number)

パラメータ

まずモジュールをインポート:

import timeit

例1 – シンプルな式の計測

基本的な算術演算をテスト:

import timeit
print(timeit.timeit("output = 10*5"))

典型的な出力:

0.06127880399999999

これは100万回実行中の最速時間(秒)を示します。

複数行の計測

セミコロンで文を区切るか、トリプルクォート文字列で渡すことで複数行コードを処理可能。

セミコロン使用

import timeit
print("実行時間:", timeit.timeit(stmt="a=10;b=10;sum=a+b"))

出力:

実行時間: 0.137031482

トリプルクォート文字列使用

import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module))

出力:

実行時間: 0.182619178

主要メソッド

例1 – timeit.timeit()使用

# ランダム整数を返す関数をテスト
import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.timeit(stmt=testcode, setup=import_module))

出力:

0.46715912400000004

例2 – default_timer()使用

# 単一関数呼び出しを計測
import timeit
import random

def test():
    return random.randint(10, 100)

starttime = timeit.default_timer()
print("開始時刻:", starttime)
test()
print("経過時間:", timeit.default_timer() - starttime)

出力:

開始時刻: 0.220261875
経過時間: 0.0004737320000000045

例3 – timeit.repeat()使用

# テストを5回実行し、各ベストタイムを取得
import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))

出力:

[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

各エントリは100万回実行の1イテレーションあたりの最速時間です。

コマンドライン使用

timeitをシェルから直接呼び出し可能:

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]

例

C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop

REPLからtimeitを呼ぶ便利な方法も:

import timeit
print("実行時間:", timeit.timeit(stmt="a=10;b=10;sum=a+b"))

出力:

実行時間: 0.15048536300000137

timeit()がPythonコード計測の最良ツールである理由

まとめ

timeitモジュールは短いPythonスニペットのベンチマークに不可欠です。パラメータはシンプル:

正確で再現可能な計測には必ずtimeitを使用してください。

Python

  1. Pythonで現在時刻とタイムゾーンデータを簡単に取得する
  2. Pythonのtimeモジュールをマスター:関数、構造体、実践例
  3. Pythonのtime.sleep()をマスター:ベストプラクティス、マルチスレッド、実例
  4. Python str.count()マスター:文字と部分文字列のカウント実例集
  5. Python format()文字列を明確な例でマスター
  6. Python String.find()メソッド完全ガイド:構文、例、代替手法
  7. Pythonラムダ関数をマスターする:実例とベストプラクティス
  8. Python round()関数を実例で徹底解説
  9. Python map()関数をマスター:構文、例、ベストプラクティス
  10. Python collections.Counter:効率的なカウント、更新、演算操作
  11. Python type()とisinstance()の理解:実例付き解説