Mesurer le temps écoulé en Python
Cet article explique comment mesurer le temps écoulé en Python.
1. Utilisation timeit
module
Python timeit
est largement utilisé pour mesurer le temps d'exécution de petits extraits de code. Vous pouvez utiliser le timeit()
fonction, qui exécute une fonction anonyme avec number
exécutions, qui est par défaut de 1 million. Il désactive temporairement la collecte des ordures pendant le minutage.
1 2 3 4 5 6 7 8 |
import timeit import time if __name__ == '__main__': t = timeit.timeit(lambda: time.sleep(1), number=5) print(t) |
La timeit
module offre une autre fonction de commodité, repeat()
, qui exécute une fonction anonyme avec la donnée repeat
compter et number
exécutions.
1 2 3 4 5 6 7 8 |
import timeit import time if __name__ == '__main__': t = timeit.repeat(lambda: time.sleep(1), repeat=10, number=5) print(t) |
Enfin, vous pouvez utiliser sa minuterie par défaut timeit.default_timer()
.
1 2 3 4 5 6 7 8 9 10 11 |
import timeit import time if __name__ == '__main__': start = timeit.default_timer() time.sleep(1) end = timeit.default_timer() print(f"Time taken is {end - start}s") |
2. Utilisation time
module
À partir de Python 3.3, vous pouvez utiliser le time.perf_counter()
fonction pour obtenir la valeur d'un compteur de performances. Vous pouvez l'utiliser pour mesurer une courte durée et utilise l'horloge de résolution la plus élevée disponible. La minuterie par défaut du module timeit default_timer()
utilisez toujours time.perf_counter()
.
1 2 3 4 5 6 7 8 9 10 |
import time if __name__ == '__main__': start = time.perf_counter() time.sleep(1) end = time.perf_counter() print(f"Time taken is {end - start}") |
Pour mesurer le temps écoulé entre deux instances de code en nanosecondes, vous pouvez utiliser le time.time_ns()
fonction, qui renvoie le temps en nanosecondes depuis l'époque en nombre à virgule flottante.
1 2 3 4 5 6 7 8 9 10 |
import time if __name__ == '__main__': start = time.time_ns() time.sleep(1) end = time.time_ns() print(f"Time taken is {end - start}ns") |
3. Utilisation datetime
module
Si vous ne recherchez pas une grande précision, vous pouvez calculer le temps écoulé entre deux instances de code à l'aide de la datetime.now()
fonction, comme indiqué ci-dessous :
1 2 3 4 5 6 7 8 9 10 11 |
from datetime import datetime import time if __name__ == '__main__': start = datetime.now() time.sleep(1) end = datetime.now() print(f"Time taken in (hh:mm:ss.ms) is {end - start}") |
Il s'agit de mesurer le temps écoulé en Python.