Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah modul `timeit` Python boleh digunakan untuk mengukur masa pelaksanaan kod dengan berkesan?

Bagaimanakah modul `timeit` Python boleh digunakan untuk mengukur masa pelaksanaan kod dengan berkesan?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-05 05:29:02486semak imbas

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

Ujian Prestasi dengan Python's timeit: Panduan Langkah demi Langkah

Untuk menentukan masa pelaksanaan segmen kod tertentu, Python menawarkan modul timeit. Mari kita terokai cara menggunakannya dengan berkesan.

Pertimbangkan skrip Python berikut yang mengemas kini jadual pangkalan data:

<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)

Untuk menentukan masa pelaksanaan gelung dalam, kita boleh menggunakan time.time( ) atau time.clock(), yang mengembalikan masa semasa dalam beberapa saat:

<code class="python">t0 = time.time()  # Start time

# Code to be timed

t1 = time.time()  # End time

total = t1 - t0

Walau bagaimanapun, timeit menawarkan pendekatan yang lebih komprehensif yang boleh purata berbilang larian dan memberikan hasil yang lebih tepat:

<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>

Dalam kod ini, pembolehubah persediaan mengandungi kod yang perlu dilaksanakan sebelum setiap larian, seperti memulakan sambungan pangkalan data dan menyediakan pernyataan. Pembolehubah kod mengandungi kod yang akan ditetapkan masa. Argumen nombor menyatakan bilangan kali kod harus dijalankan.

Dengan menggunakan modul timeit, anda boleh memperoleh ukuran masa pelaksanaan kod yang tepat dan boleh dipercayai, membolehkan anda mengoptimumkan dan memantau prestasi aplikasi Python anda .

Atas ialah kandungan terperinci Bagaimanakah modul `timeit` Python boleh digunakan untuk mengukur masa pelaksanaan kod dengan berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn