139 votes

Fonction de mesure du temps Python

Je veux créer une fonction python pour tester le temps passé dans chaque fonction et imprimer son nom avec son temps, comment je peux imprimer le nom de la fonction et s'il y a une autre façon de le faire, veuillez me dire

def measureTime(a):
    start = time.clock() 
    a()
    elapsed = time.clock()
    elapsed = elapsed - start
    print "Time spent in (function name) is: ", elapsed

12voto

Jonathan Ray Points 499

Timeit a deux gros défauts : il ne renvoie pas la valeur de retour de la fonction, et il utilise eval, ce qui nécessite de passer dans le code de configuration supplémentaire pour les importations. Cela résout les deux problèmes de manière simple et élégante :

def timed(f):
  start = time.time()
  ret = f()
  elapsed = time.time() - start
  return ret, elapsed

timed(lambda: database.foo.execute('select count(*) from source.apachelog'))
(<sqlalchemy.engine.result.ResultProxy object at 0x7fd6c20fc690>, 4.07547402381897)

4voto

eat Points 4573

Utilisez un profiler comme celui-ci plutôt que d'essayer d'implémenter une telle fonctionnalité par vous-même.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X