Python Timeit() と例
Python Timeit() とは?
Python timeit() 指定されたコード スニペットの実行時間を測定する Python ライブラリのメソッドです。 Python ライブラリは、コード ステートメントを 100 万回実行し、指定されたコード スニペットのセットから得られる最小時間を提供します。 Python timeit() は、コードのパフォーマンスをチェックするのに役立つ便利なメソッドです。
構文:
timeit.timeit(stmt, setup,timer, number)
パラメータ
- stmt :実行時間を測定したいコードを取得します。デフォルト値は「pass」です。
- セットアップ :これには、stmt の前に実行する必要があるセットアップの詳細が含まれます。デフォルト値は「pass」です。
- タイマー :これにはタイマー値が含まれます。timeit() には既にデフォルト値が設定されているため、無視できます。
- 数 :stmt は、ここで指定された番号に従って実行されます。デフォルト値は 1000000 です。
timeit() を使用するには、以下に示すようにモジュールをインポートする必要があります:
import timeit
最初の例
これは timeit() 関数の簡単な例です
コード例 1:
# testing timeit() import timeit print(timeit.timeit('output = 10*5'))
出力:
0.06127880399999999
簡単なコード ステートメント出力の実行時間 =10*5 を与える簡単な例を見てきました。実行にかかる時間は 0.06127880399999999 です。
Python コードでの複数行のタイミング
timeit.timeit() で複数行のコードを実行するには、セミコロンを使用するか、コードを三重引用符で囲んだ文字列として保存します。
以下はその動作を示す例です。
例 1:セミコロンの使用
import timeit print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
出力:
The time taken is 0.137031482
例 2:三重引用符の使用
import timeit import_module = "import random" testcode = ''' def test(): return random.randint(10, 100) ''' print(timeit.repeat(stmt=testcode, setup=import_module))
出力:
C:\pythontest>python testtimeit.py The time taken is 0.182619178
timeit – メソッド:
ここに、2 つの重要な timeit メソッドがあります
timeit.default_timer() :これは、実行時にデフォルトの時間を返します。
timeit.repeat(stmt, setup, timer, repeat, number) :timeit() と同じですが、repeat では timeit() が指定された繰り返し回数だけ呼び出されます。
プログラム例 1:
# testing 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() の例
# testing timeit() import timeit import random def test(): return random.randint(10, 100) starttime = timeit.default_timer() print("The start time is :",starttime) test() print("The time difference is :", timeit.default_timer() - starttime)
出力:
The start time is : 0.220261875 The time difference is : 0.0004737320000000045
例 3:timeit.repeat()
# testing timeit() 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]
timeit.repeat() は timeit.timeit() 関数と同様に機能しますが、唯一の違いは、repeat 引数を取り、実行時間を配列形式で返し、繰り返し回数に応じた値を返します。
コマンドライン インターフェース内でタイミング関数 timeit.timeit() を実行しています
コマンド ラインの timeit() 内で関数を実行する構文は次のとおりです。
python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]
コマンド ライン パラメータ:
- -n N:コードを実行する回数
- -r N:timeit() 関数を繰り返す回数
- -s S:コードの実行前に実行されるセットアップの詳細が含まれます。
- -t:これには time.time() を利用できます
- -c:これには time.clock() を利用できます
- -h:ヘルプ
- コード ステートメント:コードの詳細。
例:
C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop
コマンド ライン内で実行できる別の方法は次のとおりです。
例:
>>> import timeit >>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b')) The time taken is 0.15048536300000137 >>>
なぜ timeit() が Python コードの実行時間を測定する最良の方法なのですか?
timeit() が実行時間を測定する最良の方法であると考える理由はいくつかあります。
- デフォルト値である 100 万回コード ステートメントを実行し、そこから最小所要時間を返します。 time() 関数に引数の数を設定することで、100 万を増減することもできます。
- テストの実行中は、ガベージ コレクションは time () 関数によって毎回無効になります。
- timeit() は、使用しているオペレーティング システムに基づいて内部的に正確な時間を取得します。たとえば、Windows オペレーティング システムでは time.clock() を使用し、Mac と Linux では time.time() を使用します。
まとめ
Timeit() は、指定された小さなコードの実行時間を取得するために使用されます
timeit() で使用されるパラメーター
- stmt:実行時間を測定したいコードを取ります
- setup:これには、stmt の前に実行する必要があるセットアップの詳細が含まれます
- timer:これにはタイマー値が含まれます。timeit() には既にデフォルト値が設定されているため、無視できます。
- 番号:ここに指定された番号に従って stmt が実行されます。
Python