Python Timeit() avec des exemples

Qu'est-ce que Python Timeit() ?

Python timeit() est une méthode de la bibliothèque Python pour mesurer le temps d'exécution pris par l'extrait de code donné. La bibliothèque Python exécute l'instruction de code 1 million de fois et fournit le temps minimum pris à partir de l'ensemble d'extraits de code donné. 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 aura une configuration details 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()

Exemple de code 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 y en a deux dans lesquels vous pouvez exécuter plusieurs lignes de code dans timeit.timeit(), en utilisant un point-virgule ou en enregistrant le code entouré 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 aura une configuration details qui sera exécuté 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 : Le code details.

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 du code Python ?

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.

Résumé

Timeit() est utilisé pour obtenir le temps d'exécution du petit code donné

Paramètres utilisés avec timeit()

  • stmt : Cela prendra le code dont vous souhaitez mesurer le temps d'exécution
  • setup : cela aura une configuration details qui doit être exécuté avant stmt
  • timer : Cela aura la valeur du timer, timeit() a déjà une valeur par défaut définie et nous pouvons l'ignorer.
  • number : Le stmt s’exécutera selon le numéro indiqué ici.