Maison > Article > développement back-end > Comment le module « timeit » de Python peut-il être utilisé pour mesurer efficacement le temps d'exécution du code ?
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)
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
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>
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!