Python 3 でのコード パフォーマンス テストに timeit モジュールを使用する方法。x
はじめに:
Python プログラムを開発および最適化するとき、さまざまなコード セグメントのパフォーマンスを評価する必要があることがよくあります。パフォーマンス テストは、コード内のボトルネックを特定し、さまざまな最適化戦略の基礎を提供するのに役立ちます。 Python には、小さなコード セグメントの実行時間をテストし、さまざまな実装の効率を比較するための timeit モジュールが用意されています。この記事では、コードのパフォーマンス テストに timeit モジュールを使用する方法を紹介し、いくつかの一般的なアプリケーション例を示します。
timeit モジュールの基本的な使用法:
timeit モジュールは、コード フラグメントの実行時間を測定するためのシンプルで使いやすいインターフェイスを提供します。 Python 対話型インタープリターでは、timeit モジュールを使用して、コマンド ラインからコードを実行できます。以下は、 timeit モジュールの基本的な使用例です。
import timeit code = ''' a = 1 b = 2 c = a + b ''' time = timeit.timeit(stmt=code, number=100000) print(f'执行时间:{time} 秒')
上の例では、3 つのステートメントを実行し、 a と b を追加し、結果を c に割り当てる単純なコード フラグメントを定義しました。 timeit.timeit() 関数は、コードフラグメントの実行時間を測定するために使用されます。このうち、stmt パラメータは実行するコードフラグメントを受け取り、number パラメータはコードフラグメントが実行される回数を示します。最後に、print() 関数を使用して実行時間を出力します。
コマンド ラインでスクリプトを実行すると、次のような出力が表示されます。
执行时间:0.006017888000006268 秒
ここでの実行時間の単位は秒です。 1 回の実行の場合、通常、より短い時間間隔が観察されます。コード フラグメントの実行時間をより正確に測定するために、timeit モジュールはコードを複数回実行し、平均実行時間を計算します。デフォルトでは、コード スニペットが 7 回実行され、最良の 3 つの結果が平均されます。
コマンド ラインから timeit モジュールを使用するだけでなく、Python プログラムで timeit モジュールを直接使用することもできます。以下に例を示します。
import timeit code = ''' a = 1 b = 2 c = a + b ''' time = timeit.timeit(stmt=code, number=100000) print(f'执行时间:{time} 秒')
この例では、同じ方法でコード スニペットを定義し、timeit.timeit() 関数を通じて実行時間を測定しました。得られる出力は前の例と同じです。
timeit モジュールの高度な使用法:
基本的な使用法に加えて、timeit モジュールは、パフォーマンス テスト プロセスをより詳細に制御するための高度な機能も提供します。
import timeit code = ''' a = 1 b = 2 c = a + b ''' timer = timeit.Timer(stmt=code) time = timer.timeit(number=100000) print(f'执行时间:{time} 秒')
この例では、まず Timer オブジェクト タイマーを作成し、それにコード フラグメントを渡します。次に、timer.timeit() メソッドを使用して実行時間を測定します。ご覧のとおり、出力は前の例と同じです。
import timeit code1 = ''' a = 1 b = 2 c = a + b ''' code2 = ''' a = 1 b = 2 c = a * b ''' time1 = timeit.timeit(stmt=code1, number=100000) time2 = timeit.timeit(stmt=code2, number=100000) print(f'执行时间1:{time1} 秒') print(f'执行时间2:{time2} 秒')
この例では、2 つのコード フラグメント code1 と code2 を定義し、それぞれ a b と a * b の結果を計算します。 timeit.timeit() 関数をそれぞれ呼び出すことで、2 つのコード スニペットの実行時間を取得します。ご覧のとおり、出力結果には 2 つのコード スニペットの実行時間がそれぞれ示されています。
これらのパラメータを通じて、timeit モジュールのテスト プロセスをより柔軟に制御できます。たとえば、-n パラメータを使用してコード スニペットの実行回数を指定すると、より正確な実行時間を取得できます。たとえば、次に例を示します。
import timeit code = ''' a = 1 b = 2 c = a + b ''' time = timeit.timeit(stmt=code, number=10000) print(f'执行时间:{time} 秒')
この例では、-n パラメータを使用して、より正確な実行時間を取得するためにコード スニペットが 10,000 回実行されるように指定します。
結論:
timeit モジュールを使用すると、Python コードのパフォーマンス テストを簡単に実行できます。さまざまなテストのニーズを満たすためのシンプルかつ高度な使用法を提供します。コマンド ラインでも Python プログラム内でも、パフォーマンス テストに timeit モジュールを使用することは、Python プログラムの開発と最適化のための強力なツールです。この記事の内容があなたのお役に立てれば幸いです。
参考:
以上がPython 3.x でのコード パフォーマンス テストに timeit モジュールを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。