Module python timeit

Module python timeit

La programmation ne consiste pas seulement à accomplir une tâche et à obtenir une sortie que nous avions l'intention d'obtenir. Il s'agit également de la vitesse à laquelle un programme s'exécute et s'exécute afin que la sortie souhaitée soit atteinte. Avec la plupart des langages de programmation, il n'est pas facile de comparer à quelle vitesse le programme s'est déroulé et il n'est jamais facile de chronométrer un morceau de code particulier pour comprendre quelle partie de notre code prend le plus de temps pour exécuter. C'est le problème qui est résolu par le python temps module.

Module python timeit

Python temps Le module nous permet de chronométrer l'heure d'exécution d'un morceau de code sans prendre en compte les processus d'arrière-plan qui sont exécutés pour rendre un code exécutable. Si vous avez besoin de mesures légèrement précises sur la façon dont votre code fonctionne temps Le module est-il possible.

Exemple simple

Nous commencerons par utiliser le module TimeIt directement à partir de l'invite de commande. Le module TimeIt peut être utilisé directement à partir de la CLI où nous pouvons saisir une instruction de boucle simple et le temps en utilisant la commande affichée:

$ Python - Version
$ python -m timeit '"&".rejoindre (str (n) pour n dans la gamme (1000)) '
$ python -m timeit '"&".join ([str (n) pour n dans la gamme (1000)]) '
$ python -m timeit '"&".join (map (str, gamme (1000))) '

Voici ce que nous récupérons avec cette commande:

Temps d'exécution de la CLI en utilisant TimeIt

Dans l'une des sections ultérieures, nous apprendreons comment gérer le nombre de boucles effectuées pour trouver le nombre optimal pour l'exécution d'une expression donnée.

Chronométrer un morceau de code

Si vous avez un script Python de base pour lequel vous souhaitez mesurer le temps, le module TimeIt est la voie à suivre:

Importer TimeIt
# Le code de configuration est exécuté une seule fois
setup_code = "From Math Import Sqrt"
# Extrait de code principal pour la vérification des performances
code_to_measure = "'
Def Example ():
myList = []
pour x dans la gamme (100):
ma liste.Ajouter (sqrt (x))
'"
# déclaration de tempsi
Imprimer (TimeIt.TimeIt (setup = setup_code,
STMT = Code_To_Measure,
nombre = 10000))

Voyons la sortie de cette commande:

Chronométrer une boucle

Dans ce code, nous avons également vu comment nous pouvons contrôler le nombre de répétitios que le module TimeIt effectuera pour trouver le meilleur moment d'exécution pour le programme.

Mesurez le temps pour le code multi-lignes de la CLI

Nous pouvons également mesurer le temps pour le code qui s'étend sur plusieurs lignes dans la CLI Python. Regardons un exemple de programme pour voir ceci:

$ python -m timeit -s \
> "Linuxhint = " \
> "pour n dans la plage (1000):" \
> "Linuxhint [str (n)] = n"

Voici ce que nous récupérons avec cette commande:

Timing Code multi-lignes sur la CLI

Comparant généralement deux blocs de code

Si vous ne voulez pas entrer dans un problème d'utilisation de CLI et que vous souhaitez simplement comparer deux programmes Python afin que vous sachiez lequel fonctionne plus rapidement, il existe un moyen assez simple de réaliser ceci:

Importer TimeIt
start = timeit.default_timer ()
funcone ()
Imprimer (TimeIt.default_timer () - Démarrer)
start = timeit.default_timer ()
functwo ()
Imprimer (TimeIt.default_timer () - Démarrer)

En utilisant la fonction default_timer (), nous commençons le temps encore et encore pour trouver une différence pour la même chose lors de son démarrage pour la dernière fois. Cela ne peut être utilisé que lorsque vous avez un bon style d'écriture modulaire de code afin que chaque pie de code puisse être mesuré séparément.

Conclusion

Dans cette leçon, nous avons étudié comment nous pouvons chronométrer notre code en python et voir leur complexité et leur efficacité de temps et travailler dessus si le code est trop lent.