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