Python Timeit() avec des exemples

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()

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 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.

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 contiendra les dรฉtails de configuration qui doivent รชtre exรฉcutรฉs 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.

Rรฉsumez cet article avec :