Python Timeit () avec des exemples

Table des matières:

Anonim

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 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 "pass".
  • setup : Cela aura des détails de configuration qui doivent être exécutés avant stmt. La valeur par défaut est «pass».
  • timer : Cela aura la valeur du timer, timeit () a déjà une valeur par défaut, et nous pouvons l'ignorer.
  • number : Le stmt s'exécutera selon le nombre 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 fonction timeit ()

Exemple de code 1:

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

Production:

0.06127880399999999

Nous avons vu un exemple simple qui nous donne le temps d'exécution de l'instruction de code simple output = 10 * 5, et le temps nécessaire pour l'exécuter est de 0,06127880399999999.

Timing Plusieurs lignes dans le code Python

Il y en a deux, vous pouvez exécuter plusieurs lignes de code dans timeit.timeit (), en utilisant un point-virgule ou en enregistrant le code enfermé sous forme de chaîne avec des guillemets triples.

Voici des exemples qui en montrent le fonctionnement.

Exemple 1: Utilisation du point-virgule

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

Production:

The time taken is 0.137031482

Exemple 2: Utilisation de guillemets triples

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

Production:

C:\pythontest>python testtimeit.pyThe time taken is 0.182619178

timeit - Méthodes:

Voici 2 méthodes timeit importantes

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

timeit.repeat (stmt, setup, timer, repeat, number) : identique à timeit (), mais avec repeat, timeit () est appelé le nombre de fois que la répétition est donnée.

Exemple de programme 1:

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

Production:

0.46715912400000004

Exemple 2:

default_timer () Exemple

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

Production:

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

Exemple 3: timeit.repeat ()

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

Production:

[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 dans l'argument de répétition et rend le temps d'exécution au format tableau avec des valeurs selon le nombre 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 d'exécutions du code.
  • -r N: le nombre de fois que vous voulez que la fonction timeit () se répète
  • -s S: cela aura des 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 à l'intérieur de la ligne de commande est comme indiqué ci-dessous:

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 qui est la valeur par défaut, et à partir de là, il vous retournera le temps minimum nécessaire. 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 exacte selon votre système d'exploitation utilisé. Par exemple, il utilisera time.clock () pour le système d'exploitation Windows et time.time () pour Mac et Linux.

Résumé

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

Paramètres utilisés avec timeit ()

  • stmt: Cela prendra le code que vous souhaitez mesurer le temps d'exécution
  • setup: Cela aura des 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, et nous pouvons l'ignorer.
  • number: Le stmt s'exécutera selon le nombre indiqué ici.