
[Python] Combien de temps met un bloc de code
Lorsqu’on debug son script, parfois on souhaite connaitre le temps qu’une portion de code met pour s’exécuter.
Méthode simple
On regarde l’heure avant notre portion de code, on regarde l’heure après notre portion de code :
import time
start_time = time.time()
# ...
# Du code
# ...
print("--- %.2f seconds ---" % (time.time() - start_time))
Méthode avancée
On fait une classe qui permettra de chronométrer tout ce qui à l’intérieur d’un bloc de code with
:
from datetime import datetime
class CodeTimer:
def __init__(self, name=None):
self.name = " '" + name + "'" if name else ''
def __enter__(self):
self.start = datetime.now()
def __exit__(self, exc_type, exc_value, traceback):
self.took = (datetime.now() - self.start)
print(f"[{self.name}] {str(self.took)}")
with CodeTimer('Nom de mon bloc'):
# Du code
# ...