Sommaire

Profiler le code Code:profiler

Profiler le code consiste à mesurer les ressources nécessaires pour l’exécuter, tant les ressources mémoire que les ressources de calcul.

La stratégie consiste généralement, lors d’une phase d’optimisation, à mesurer le temps d’exécution des éléments constituant le programme et à chercher à réduire le temps d’exécution des éléments les plus chronophages. Il est alors possible de comparer différentes versions d’une fonctionnalité.

Python propose un module nommé cProfil qui réalise ces mesures.

Pour l’utiliser, on crée généralement la structure suivante :

    pr = cProfile.Profile() 
    pr.enable() 
    # Placer ici des éléments à tester  
    pr.disable() 
    s = io.StringIO() 
    sortby = ’cumulative’ 
    ps = pstats.Stats(pr, stream=s).sort_stats(sortby) 
    ps.print_stats() 
    print(s.getvalue())

Les éléments à tester sont placés entre l’appel de la méthode enable() et l’appel de la méthode disable().

Reprenons la classe Voiture :

class Voiture(object): 
 
    def __init__(self, modele, marque, annee): 
        """constructeur de la classe voiture  ...