首頁  >  文章  >  後端開發  >  如何使用Python的'timeit”模組有效測量程式碼執行時間?

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-11-05 05:29:02566瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn