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.