Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann das Python-Modul „timeit' verwendet werden, um die Codeausführungszeit effektiv zu messen?

Wie kann das Python-Modul „timeit' verwendet werden, um die Codeausführungszeit effektiv zu messen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-05 05:29:02551Durchsuche

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

Leistungstests mit Pythons timeit: Eine Schritt-für-Schritt-Anleitung

Um die Ausführungszeit eines bestimmten Codesegments zu bestimmen, bietet Python an das Timeit-Modul. Sehen wir uns an, wie man es effektiv nutzt.

Betrachten Sie das folgende Python-Skript, das eine Datenbanktabelle aktualisiert:

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

Um die Ausführung der inneren Schleife zu timen, können wir time.time( ) oder time.clock(), die die aktuelle Zeit in Sekunden zurückgeben:

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

# Code to be timed

t1 = time.time()  # End time

total = t1 - t0

Timeit bietet jedoch einen umfassenderen Ansatz, der mehrere Läufe mitteln und genauere Ergebnisse liefern kann:

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

In diesem Code enthält die Setup-Variable den Code, der vor jedem Lauf ausgeführt werden muss, z. B. das Initialisieren der Datenbankverbindung und das Vorbereiten der Anweisung. Die Codevariable enthält den zu timenden Code. Das Zahlenargument gibt an, wie oft der Code ausgeführt werden soll.

Durch die Verwendung des timeit-Moduls können Sie präzise und zuverlässige Messungen der Codeausführungszeiten erhalten und so die Leistung Ihrer Python-Anwendungen optimieren und überwachen .

Das obige ist der detaillierte Inhalt vonWie kann das Python-Modul „timeit' verwendet werden, um die Codeausführungszeit effektiv zu messen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn