Pour trouver dans votre code les parties qui ont besoin d’optimisation, plusieurs possibilités s’offrent à vous :
- L’examen du code. C’est la technique la plus simple, car vous n’avez besoin d’aucun autre outil qu’un éditeur de code. Toutefois, ce n’est pas la plus facile à mettre en œuvre, car elle suppose que vous connaissez les performances de certains blocs de codes, ce qui n’est pas forcément le cas. Cette technique peut également ne peut pas fonctionner dès que la taille de la base de code devient modérément grande, car cela représente trop d’information à maîtriser ;
- La journalisation. Cette technique consiste à écrire une version spéciale du code source à laquelle sont ajoutées des instructions de journalisation du temps de traitement. Il faut ensuite examiner les journaux et essayer de trouver la partie lente du code. Cette analyse peut être fastidieuse et implique en outre des modifications du code source ;
- Le profilage. Le profilage consiste à recueillir des mesures indiquant comment fonctionne votre application avec des charges de travail données. Le profilage peut porter sur les points chauds dans l’utilisation du CPU (c.-à-d. la recherche et le réglage des fonctions qui consomment beaucoup de cycles de CPU). Il est également possible de profiler des éléments tels que la consommation de mémoire, etc. Cependant dans une application Python typique, c’est généralement le CPU qui est en cause, et même certains points de forte consommation de mémoire peuvent être identifiés en détectant les points chauds du CPU. Cela s’explique par le fait que l’allocation et la libération de mémoire, en particulier dans certains cas comme celui des objets Python volumineux de type séquence, représentent une utilisation intensive du temps de CPU.
Le profilage d’une application nécessite l’utilisation d’un outil spécifique, mais les gains de productivité obtenus le justifient largement. Parmi les outils disponibles à cette fin, on note le profileur de performance VTune Amplifier XE d’Intel. Dans la dernière version d’Intel VTune Amplifier XE 2017, l’outil offre maintenant la capacité d’analyser les scripts Python et de trouver exactement les parties d’une application qui consomme le plus de temps. Il faut par ailleurs noter que VTune Amplifier XE d’Intel a été livré gratuitement dans le programme Intel Parallel Studio XE Beta.
L’outil est pris en charge par Windows et Linux, avec les caractéristiques clés suivantes :
- cible Python 32 et 64-bit ;
- compatible avec les branches 2.7.x et 3.4.x ;
- collecte à distance via le support SSH ;
- riche interface avec support multithread, zoom et filtre, et zoom avant dans le code source.
Dans un libre blanc gratuit disponible au téléchargement, vous découvrirez et serez guidés à travers les différentes étapes d’analyse de code Python avec cette nouvelle fonctionnalité d’Intel VTune Amplifier. Il faut également préciser que l’article se concentre sur le profilage des points chauds dans l’utilisation du CPU.
Télécharger le livre blanc sur l’optimisation de code Python avec Intel VTune Amplifier XE