如何使用Python的'timeit”模組有效測量程式碼執行時間?

Mary-Kate Olsen
發布: 2024-11-05 05:29:02
原創
493 人瀏覽過

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

使用 Python 的 timeit 進行效能測試:逐步指南

為了確定特定程式碼段的執行時間,Python 提供了時間模組。讓我們探索如何有效地使用它。

考慮以下更新資料庫表的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 變數包含要計時的程式碼。 number 參數指定程式碼應執行的次數。

透過使用 timeit 模組,您可以獲得精確可靠的程式碼執行時間測量,使您能夠優化和監控 Python 應用程式的效能.

以上是如何使用Python的'timeit”模組有效測量程式碼執行時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!