Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Python timeit() : mesurer le temps d'exécution avec exemples pratiques

Python timeit() : mesurer le temps d'exécution avec exemples pratiques

Qu'est-ce que Python timeit() ?

Python timeit() est un module intégré conçu pour mesurer le temps d'exécution de petits extraits de code avec une haute précision. Par défaut, il exécute l'instruction un million de fois et rapporte l'exécution la plus rapide, ce qui aide à comparer les performances de différentes implémentations.

Syntaxe

timeit.timeit(stmt, setup, timer, number)

Paramètres

Importez le module d'abord :

import timeit

Exemple 1 – Chronométrer une expression simple

# Tester une opération arithmétique de base

import timeit
print(timeit.timeit("output = 10*5"))

Sortie typique :

0.06127880399999999

Ceci montre le temps (en secondes) pris pour la plus rapide des un million d'exécutions.

Chronométrer plusieurs lignes

timeit peut gérer du code multi-lignes en séparant les instructions par des points-virgules ou en passant une chaîne triple-quotée.

En utilisant des points-virgules

import timeit
print("Le temps pris est ", timeit.timeit(stmt="a=10;b=10;sum=a+b"))

Sortie :

Le temps pris est 0.137031482

En utilisant des chaînes triple-quotées

import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module))

Sortie :

C:\pythontest>python testtimeit.py
Le temps pris est 0.182619178

Méthodes clés

Exemple 1 – Utiliser timeit.timeit()

# Tester une fonction qui renvoie un entier aléatoire
import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.timeit(stmt=testcode, setup=import_module))

Sortie :

0.46715912400000004

Exemple 2 – Utiliser default_timer()

# Mesurer un seul appel de fonction
import timeit
import random

def test():
    return random.randint(10, 100)

starttime = timeit.default_timer()
print("L'heure de début est :", starttime)
test()
print("La différence de temps est :", timeit.default_timer() - starttime)

Sortie :

L'heure de début est : 0.220261875
La différence de temps est : 0.0004737320000000045

Exemple 3 – Utiliser timeit.repeat()

# Exécuter le test cinq fois et capturer les meilleurs temps
import timeit
import_module = "import random"
testcode = '''
def test():
    return random.randint(10, 100)
'''
print(timeit.repeat(stmt=testcode, setup=import_module, repeat=5))

Sortie :

[0.43638873, 0.5040939680000001, 0.5069179909999999, 0.3943449330000002, 0.3546886979999999]

Chaque entrée est le meilleur temps pour une itération des 1 000 000 exécutions.

Utilisation en ligne de commande

Vous pouvez invoquer timeit directement depuis le shell :

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]
  • -n N – Nombre de boucles pour l'instruction.
  • -r N – Combien de fois le processus de chronométrage entier se répète.
  • -s S – Code de configuration exécuté une fois avant le chronométrage.
  • -t – Utiliser time.time() comme minuteur.
  • -c – Utiliser time.clock() comme minuteur.
  • -h – Afficher l'aide.

Exemple

C:\pythontest>python -m timeit -s 'text="hello world"' 20000000 loops, best of 5: 13.1 nsec per loop

Une autre façon pratique est d'appeler timeit depuis le REPL :

import timeit
print("Le temps pris est ", timeit.timeit(stmt="a=10;b=10;sum=a+b"))

Sortie :

Le temps pris est 0.15048536300000137

Pourquoi timeit() est le meilleur outil pour chronométrer du code Python

  • Il exécute l'instruction de nombreuses fois (défaut 1 000 000) et renvoie l'exécution la plus rapide, donnant une estimation fiable.
  • La collecte des ordures est désactivée pendant le chronométrage, l'empêchant de fausser les résultats.
  • Il sélectionne automatiquement le minuteur le plus précis pour votre système d'exploitation (ex. : time.clock() sur Windows, time.time() sur macOS/Linux).

Résumé

Le module timeit est essentiel pour benchmarker de courts extraits Python. Ses paramètres sont simples :

  • stmt – Code à chronométrer.
  • setup – Code de configuration unique.
  • timer – Fonction de minuteur optionnelle.
  • number – Combien de fois stmt s'exécute.

Assurez-vous d'utiliser timeit pour des mesures précises et reproductibles.

Python

  1. Python : Récupérer l'heure actuelle et les données de fuseau horaire facilement
  2. Maîtriser str.count() de Python : Compter caractères et sous-chaînes avec exemples
  3. Maîtriser les chaînes format() en Python avec exemples clairs
  4. Maîtriser la méthode String.find() de Python : Syntaxe, Exemples et Alternatives
  5. Maîtriser les fonctions lambda Python : exemples pratiques et bonnes pratiques
  6. Fonction Python round() expliquée avec exemples pratiques
  7. Maîtriser la fonction Python map() : syntaxe, exemples et bonnes pratiques
  8. Python Counter dans collections : comptage efficace, mise à jour et opérations arithmétiques
  9. Comprendre type() et isinstance() en Python : exemples pratiques