Python の「timeit」モジュールを使用して、コードの実行時間を効果的に測定するにはどうすればよいでしょうか?

Mary-Kate Olsen
リリース: 2024-11-05 05:29:02
オリジナル
568 人が閲覧しました

How can Python's `timeit` module be used to measure code execution time effectively?

Python の timeit を使用したパフォーマンス テスト: ステップバイステップ ガイド

特定のコード セグメントの実行時間を決定するために、Python は以下を提供しますtimeit モジュール。これを効果的に使用する方法を見てみましょう。

データベース テーブルを更新する次の Python スクリプトについて考えてみましょう。

<code class="python">import time
import random
import ibm_db

# Open a file for writing results
myfile = open("results_update.txt", "a")

# Create a database connection
conn = ibm_db.pconnect("dsn=myDB", "usrname", "secretPWD")

# Prepare a parameterized update statement
query_stmt = ibm_db.prepare(conn, "update TABLE set val = ? where MyCount >= '2010' and MyCount < '2012' and number = '250'")

# Execute the update statement 100 times with different random values
for r in range(100):
    rannumber = random.randint(0, 100)
    params = [rannumber]
    ibm_db.execute(query_stmt, params)
    myfile.write(str(rannumber) + "\n")

# Close the file and connection
myfile.close()
ibm_db.close(conn)
ログイン後にコピー

内部ループの実行時間を計るには、time.time( ) または time.clock() は、現在時刻を秒単位で返します:

<code class="python">t0 = time.time()  # Start time

# Code to be timed

t1 = time.time()  # End time

total = t1 - t0
ログイン後にコピー

ただし、timeit は、複数の実行を平均し、より正確な結果を提供できる、より包括的なアプローチを提供します:

<code class="python">import timeit

setup = """
import random
import ibm_db

conn = ibm_db.pconnect("dsn=myDB", "usrname", "secretPWD")
query_stmt = ibm_db.prepare(conn, "update TABLE set val = ? where MyCount >= '2010' and MyCount < '2012' and number = '250'")
params = [12]
"""

code = """
ibm_db.execute(query_stmt, params)
"""

timeit.Timer(code, setup).timeit(number=100)  # Run the code 100 times</code>
ログイン後にコピー

このコードでは、setup 変数には、データベース接続の初期化やステートメントの準備など、各実行前に実行する必要があるコードが含まれています。 code 変数には、時間を測定するコードが含まれています。数値引数は、コードを実行する回数を指定します。

timeit モジュールを利用すると、コード実行時間の正確で信頼性の高い測定値を取得でき、Python アプリケーションのパフォーマンスを最適化して監視できるようになります。 .

以上がPython の「timeit」モジュールを使用して、コードの実行時間を効果的に測定するにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート