Comment le module « timeit » de Python peut-il être utilisé pour mesurer efficacement le temps d'exécution du code ?

Mary-Kate Olsen
Libérer: 2024-11-05 05:29:02
original
554 Les gens l'ont consulté

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

Tests de performances avec timeit de Python : un guide étape par étape

Pour déterminer le temps d'exécution d'un segment de code spécifique, Python propose le module timeit. Explorons comment l'utiliser efficacement.

Considérez le script Python suivant qui met à jour une table de base de données :

<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)
Copier après la connexion

Pour chronométrer l'exécution de la boucle interne, nous pouvons utiliser time.time( ) ou time.clock(), qui renvoient l'heure actuelle en secondes :

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

# Code to be timed

t1 = time.time()  # End time

total = t1 - t0
Copier après la connexion

Cependant, timeit propose une approche plus complète qui peut faire la moyenne de plusieurs exécutions et fournir des résultats plus précis :

<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>
Copier après la connexion

Dans ce code, la variable de configuration contient le code qui doit être exécuté avant chaque exécution, comme l'initialisation de la connexion à la base de données et la préparation de l'instruction. La variable code contient le code à chronométrer. L'argument numérique spécifie le nombre de fois que le code doit être exécuté.

En utilisant le module timeit, vous pouvez obtenir des mesures précises et fiables des temps d'exécution du code, vous permettant d'optimiser et de surveiller les performances de vos applications Python. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal