Mis a jour le 2025-04-14, 12:10

Profiling

Profiling (mesure des performances) :
  • rajouter import cProfile
  • pour l'appel de la fonction à profiler, par exemple main(), faire à la place : cProfile.run('main()')
  • les résultats sont sur stdout (cumtime est le temps passé dans la fonction et dans les fonctions qui y sont appelées)
Peut être fait par : python -m cProfile myProg.py
Valeurs sorties par cProfile :
  • ncalls : le nombre d'appel (si n/p, ce sont p appels qui font au total n appels récursifs).
  • totime : temps total passé dans la fonction elle-même.
  • percall : temps passé dans la fonction elle-même par appel
  • cumtime : temps total passé dans la fonction incluant les appels d'autres fonctions.
  • percall : temps passé dans la fonction incluant les appels d'autres fonctions, par appel
cProfile.run('main()', sort = 'time') : trie les appels par temps passé dans chaque fonction (sort peut valoir 'stdname', 'calls', 'time', et 'cumulative' (le défaut est stdname)
On peut aussi faire :
  • def timeIt():
      previousTime = getattr(timeIt, 'currentTime', None)
      timeIt.currentTime = time.time()
      if previousTime is not None:
        return timeIt.currentTime - previousTime
        
  • print(timeIt()) : à chaque appel, imprime le temps depuis le dernier appel.

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert