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 サイトの他の関連記事を参照してください。