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