Maison  >  Article  >  développement back-end  >  Comment utiliser le module timeit pour tester les performances du code dans Python 3.x

Comment utiliser le module timeit pour tester les performances du code dans Python 3.x

王林
王林original
2023-07-31 14:37:50726parcourir

Comment utiliser le module timeit pour tester les performances du code dans Python 3.x

Introduction :
Lors du développement et de l'optimisation de programmes Python, nous devons souvent évaluer les performances de différents segments de code. Les tests de performances peuvent nous aider à identifier les goulots d'étranglement dans le code et fournir la base de différentes stratégies d'optimisation. Python fournit le module timeit pour tester le temps d'exécution de petits segments de code et comparer l'efficacité des différentes implémentations. Cet article explique comment utiliser le module timeit pour tester les performances du code et fournit quelques exemples d'applications courantes.

Utilisation de base du module timeit : Le module
timeit fournit une interface simple et facile à utiliser pour mesurer le temps d'exécution des fragments de code. Dans l'interpréteur interactif Python, nous pouvons utiliser le module timeit pour exécuter du code via la ligne de commande. Voici un exemple d'utilisation de base du module timeit :

import timeit

code = '''
a = 1
b = 2
c = a + b
'''

time = timeit.timeit(stmt=code, number=100000)
print(f'执行时间:{time} 秒')

Dans l'exemple ci-dessus, nous avons défini un simple extrait de code qui exécute trois instructions, ajoute a et b et attribue le résultat à c. La fonction timeit.timeit() permet de mesurer le temps d'exécution d'un fragment de code. Parmi eux, le paramètre stmt accepte le fragment de code à exécuter, et le paramètre number indique le nombre de fois que le fragment de code sera exécuté. Enfin, nous imprimons le temps d'exécution à l'aide de la fonction print().

Exécutez le script dans la ligne de commande, nous verrons un résultat similaire à celui-ci :

执行时间:0.006017888000006268 秒

L'unité de temps d'exécution ici est la seconde. Dans le cas d’une seule exécution, on observe généralement des intervalles de temps plus petits. Pour mesurer plus précisément le temps d'exécution d'un fragment de code, le module timeit exécute le code plusieurs fois et calcule le temps d'exécution moyen. Par défaut, il exécute l'extrait de code 7 fois et fait la moyenne des trois meilleurs résultats.

En plus d'utiliser le module timeit via la ligne de commande, nous pouvons également utiliser le module timeit directement dans les programmes Python. Voici un exemple :

import timeit

code = '''
a = 1
b = 2
c = a + b
'''

time = timeit.timeit(stmt=code, number=100000)
print(f'执行时间:{time} 秒')

Dans cet exemple, nous avons défini l'extrait de code de la même manière et mesuré le temps d'exécution via la fonction timeit.timeit(). Le résultat que nous obtenons est le même que celui de l’exemple précédent.

Utilisation avancée du module timeit :
En plus de l'utilisation de base, le module timeit fournit également des fonctions avancées pour un contrôle plus précis du processus de test de performances.

  1. Régler la minuterie : le module
    timeit prend en charge les minuteries par défaut et nous permet également de régler les minuteries manuellement. Grâce à la classe timeit.Timer(), nous pouvons créer un objet timer et l'utiliser pour mesurer le temps d'exécution d'un fragment de code. Voici un exemple :
import timeit

code = '''
a = 1
b = 2
c = a + b
'''

timer = timeit.Timer(stmt=code)

time = timer.timeit(number=100000)
print(f'执行时间:{time} 秒')

Dans cet exemple, nous créons d'abord un timer d'objet Timer et lui transmettons l'extrait de code. Nous utilisons ensuite la méthode timer.timeit() pour mesurer le temps d'exécution. Comme vous pouvez le voir, le résultat est le même que dans l’exemple précédent.

  1. Exécuter plusieurs extraits de code : Le module
    timeit nous permet de tester le temps d'exécution de plusieurs extraits de code en même temps. Nous pouvons définir différents extraits de code avec plusieurs chaînes et les transmettre dans la méthode timeit.timeit() ou timer.timeit(). Voici un exemple :
import timeit

code1 = '''
a = 1
b = 2
c = a + b
'''

code2 = '''
a = 1
b = 2
c = a * b
'''

time1 = timeit.timeit(stmt=code1, number=100000)
time2 = timeit.timeit(stmt=code2, number=100000)

print(f'执行时间1:{time1} 秒')
print(f'执行时间2:{time2} 秒')

Dans cet exemple, nous définissons deux extraits de code code1 et code2, qui calculent respectivement les résultats de a + b et a * b. En appelant respectivement la fonction timeit.timeit(), nous obtenons le temps d'exécution des deux extraits de code. Comme vous pouvez le voir, les résultats de sortie affichent respectivement le temps d'exécution des deux extraits de code.

  1. Passage des paramètres via la ligne de commande :
    Lors de l'utilisation du module timeit via la ligne de commande, nous pouvons contrôler le processus de test en transmettant certains paramètres. Ces paramètres peuvent être utilisés pour modifier le comportement par défaut du module timeit. Voici quelques exemples de paramètres couramment utilisés :
  • -n : Spécifie le nombre de fois que le fragment de code est exécuté.
  • -p : Imprimer les résultats des tests sous forme de code Python.
  • -r : Spécifiez le nombre de répétitions pour exécuter le fragment de code (la valeur par défaut est 7).
  • -s : Spécifiez les instructions de configuration à exécuter avant le test.
  • -t : Désactivez la minuterie par défaut.

Grâce à ces paramètres, nous pouvons contrôler le processus de test du module timeit de manière plus flexible. Par exemple, nous pouvons utiliser le paramètre -n pour spécifier le nombre de fois que l'extrait de code est exécuté afin d'obtenir un temps d'exécution plus précis. Par exemple, voici un exemple :

import timeit

code = '''
a = 1
b = 2
c = a + b
'''

time = timeit.timeit(stmt=code, number=10000)
print(f'执行时间:{time} 秒')

Dans cet exemple, nous utilisons le paramètre -n pour spécifier que l'extrait de code doit être exécuté 10 000 fois pour obtenir un temps d'exécution plus précis.

Conclusion :
Avec le module timeit, nous pouvons facilement effectuer des tests de performances du code Python. Il offre une utilisation simple et avancée pour répondre à différents besoins de tests. Que ce soit en ligne de commande ou au sein d'un programme Python, l'utilisation du module timeit pour les tests de performances est un outil puissant pour développer et optimiser des programmes Python. J'espère que le contenu de cet article vous sera utile.

Référence :

  • Documentation officielle Python : https://docs.python.org/3/library/timeit.html

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn