Python Timeit() avec des exemples

⚡ Résumé intelligent

Python La fonction `timeit()` mesure le temps d'exécution d'un court extrait de code en l'exécutant plusieurs fois et en renvoyant la durée minimale. Elle prend en charge les méthodes `timeit`, `repeat` et `default_timer` et fonctionne aussi bien dans les scripts que dans la ligne de commande.

  • ️ Définition de Timeit : Mesure le temps d'exécution d'un extrait de code et renvoie la valeur minimale sur plusieurs exécutions.
  • 🧩 Paramètres: Les paramètres stmt, setup, timer et number contrôlent ce qui s'exécute et à quelle fréquence.
  • (I.e. Méthodologie: Les fonctions timeit(), repeat() et default_timer() offrent différentes options de temporisation.
  • 💻 Ligne de commande: Exécutez python -m timeit avec des options comme -n, -r et -s.
  • ✅ Pourquoi l'utiliser : Désactive le ramassage des déchets et sélectionne le minuteur le plus précis pour chaque système d'exploitation.

Python Timeit()

Qu'est-ce que le Python Timeit() ?

Python le temps() est une méthode dans Python bibliothèque pour mesurer le temps d’exécution pris par l’extrait de code donné. Le Python La bibliothèque exécute l'instruction de code 1 million de fois et fournit le temps minimum pris à partir de l'ensemble donné d'extraits de code. Python timeit() est une méthode utile qui permet de vérifier les performances du code.

Syntaxe

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

Paramètres

  • stmt: Cela prendra le code pour lequel vous souhaitez mesurer le temps d'exécution. La valeur par défaut est « réussite ».
  • installation: Cela contiendra les détails de configuration qui doivent être exécutés avant stmt. La valeur par défaut est « réussite ».
  • minuteur: Cela aura la valeur du timer, timeit() a déjà une valeur par défaut définie et nous pouvons l'ignorer.
  • nombre: Le stmt s'exécutera selon le numéro indiqué ici. La valeur par défaut est 1000000 .

Pour travailler avec timeit(), nous devons importer le module, comme indiqué ci-dessous :

import timeit

Premier exemple

Voici un exemple simple de la fonction timeit()

Code Exemple 1

# testing timeit()
import timeit
print(timeit.timeit('output = 10*5'))

Sortie :

0.06127880399999999

Nous avons vu un exemple simple qui nous donne le temps d'exécution de la sortie de l'instruction de code simple = 10*5, et le temps nécessaire à son exécution est de 0.06127880399999999.

Timing Plusieurs lignes dans le code python

Il existe deux manières d'exécuter plusieurs lignes de code dans timeit.timeit() : en séparant les lignes par des points-virgules ou en enfermant le code sous forme de chaîne avec des guillemets triples.

Voici des exemples qui montrent son fonctionnement.

Exemple 1 : Utilisation du point-virgule

import timeit
print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))

Sortie :

The time taken is  0.137031482

Exemple 2 : Utilisation de guillemets triples

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
The time taken is  0.182619178

timeit – Méthodes

Voici 2 méthodes timeit importantes

timeit.default_timer() : Cela renverra l'heure par défaut lors de l'exécution.

timeit.repeat (stmt, configuration, minuterie, répétition, numéro) : identique à timeit() , mais avec la répétition, le timeit() est appelé le nombre de fois que la répétition est donnée.

Exemple de programme 1

# testing timeit()
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

exemple default_timer()

# testing timeit()

import timeit
import random

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

starttime = timeit.default_timer()
print("The start time is :",starttime)
test()
print("The time difference is :", timeit.default_timer() - starttime)

Sortie :

The start time is : 0.220261875
The time difference is : 0.0004737320000000045

Exemple 3 : timeit.repeat()

# testing timeit()
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]

timeit.repeat() fonctionne de manière similaire à la fonction timeit.timeit(), avec la seule différence qu'elle prend l'argument de répétition et restitue le temps d'exécution au format tableau avec des valeurs selon le numéro de répétition.

Exécution de la fonction de synchronisation timeit.timeit() dans l'interface de ligne de commande

La syntaxe pour exécuter votre fonction dans timeit() sur la ligne de commande est la suivante :

python -m timeit [-n N] [-r N] [-s S] [-t] [-c] [-h] [code statement ...]

Paramètres de ligne de commande:

  • -n N : le nombre de fois que vous souhaitez que le code soit exécuté.
  • -r N : le nombre de fois que vous souhaitez que la fonction timeit() se répète
  • -s S : cela contiendra les détails de configuration qui seront exécutés avant l'exécution du code.
  • -t : pour cela, vous pouvez utiliser time.time()
  • -c : pour cela, vous pouvez utiliser time.clock()
  • -h : pour obtenir de l'aide
  • instruction de code : les détails du code.

Exemple

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

Une autre façon d'exécuter en ligne de commande est la suivante :

Exemple

>>> import timeit
>>> print("The time taken is ",timeit.timeit(stmt='a=10;b=10;sum=a+b'))
The time taken is  0.15048536300000137
>>>

Pourquoi timeit() est-il le meilleur moyen de mesurer le temps d'exécution de Python code?

Voici quelques raisons pour lesquelles nous considérons timeit() comme le meilleur moyen de mesurer le temps d'exécution.

  • Il exécute l'instruction de code 1 million de fois, ce qui est la valeur par défaut, et à partir de là, il vous renverra le temps minimum pris. Vous pouvez également augmenter/diminuer le million en définissant le numéro d'argument dans la fonction time().
  • Lors de l'exécution du test, le garbage collection est désactivé à chaque fois par la fonction time().
  • timeit() prend en interne l'heure précise selon votre système d'exploitation utilisé. Par exemple, il utilisera time.clock() pour Windows système d'exploitation et time.time() pour Mac et Linux.

FAQ

La méthode `timeit.timeit()` exécute la mesure un nombre défini de fois et renvoie un temps total. La méthode `timeit.repeat()` répète cette mesure plusieurs fois et renvoie une liste de résultats, vous permettant de choisir le meilleur.

timeit désactive le ramasse-miettes pendant la mesure afin que le nettoyage en arrière-plan ne fausse pas le chronométrage. Les résultats sont ainsi plus cohérents et comparables, car ils se concentrent uniquement sur le temps d'exécution de l'extrait de code testé.

Vous pouvez séparer les instructions par des points-virgules dans la chaîne `stmt`, ou passer une chaîne multiligne entre triples guillemets. Pour les fonctions, définissez-les dans `setup` et appelez-les depuis `stmt`.

L'IA peut profiler le code, identifier les boucles lentes ou les appels coûteux, suggérer des alternatives vectorisées ou intégrées et recommander de meilleures structures de données.ping Les développeurs concentrent leurs efforts d'optimisation là où Timeit révèle les plus grands goulots d'étranglement.

Oui. À partir d'un extrait de code et de ses résultats timeit, l'IA peut proposer des réécritures telles que des compréhensions de liste, des expressions génératrices ou des fonctions de bibliothèque ; il suffit ensuite de relancer timeit pour confirmer que l'amélioration est réelle.

Résumez cet article avec :