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 :