La performance est l’un des plus grands défis auxquels les programmeurs sont confrontés lors du développement de logiciels. C’est la raison pour laquelle le profilage de code est l’un des aspects les plus importants du développement logiciel, car il vous permet d’identifier les goulots d’étranglement, le code mort et même les bogues. Si vous êtes un programmeur qui développe des applications logicielles pour Linux, le profileur GNU « gprof » est l’outil à rechercher.
Contenu
Télécharger et installer
Gprof est préinstallé avec la plupart des distributions Linux, mais si ce n’est pas le cas avec votre distribution Linux, vous pouvez le télécharger et l’installer via un gestionnaire de packages en ligne de commande comme apt-get ou yum. Par exemple, exécutez la commande suivante pour télécharger et installer gprof sur les systèmes basés sur Debian :
Exigences
Avant d’utiliser gprof pour générer des données de profilage, assurez-vous que l’exécutable de votre programme contient des informations supplémentaires requises par le profileur pour fonctionner correctement. Ceci peut être réalisé en ajoutant l’option de ligne de commande -pg lors de la compilation de votre code, en supposant que vous utilisez le compilateur gcc. Si vous utilisez des commandes distinctes pour la compilation et la liaison, ajoutez l’option de ligne de commande aux deux commandes.
Utiliser gprof
Prenons l’exemple du programme C suivant :
Comme décrit dans la section précédente, compilez le code avec l’option -pg :
Une fois compilé, lancez le programme :
Après une exécution réussie, le programme produira un fichier nommé « gmon.out » qui contient les informations de profilage, mais sous une forme brute, ce qui signifie que vous ne pouvez pas ouvrir le fichier et lire directement les informations. Pour générer un fichier lisible par l’homme, exécutez la commande suivante :
Cette commande écrit toutes les informations de profilage dans un format lisible par l’homme dans le fichier « prof_output ». Notez que vous pouvez modifier le nom du fichier de sortie selon votre convenance.
Profil plat et graphique d’appel
Si vous ouvrez le fichier contenant les données de profilage, vous verrez que les informations sont divisées en deux parties : profil plat et graphique d’appel. Alors que le premier contient des détails tels que le nombre d’appels de fonction, le temps d’exécution total passé dans une fonction, etc., le second décrit l’arborescence des appels du programme, fournissant des détails sur les fonctions parent et enfant d’une fonction particulière.
Par exemple, ce qui suit est le profil plat dans notre cas :
Voici le graphique des appels :
Notez que l’explication détaillée de ces champs est présente dans le fichier contenant les informations de profilage (prof_output dans ce cas) et est générée à chaque exécution du profileur. Pour désactiver les détails, utilisez l’option de ligne de commande -b avec la commande gprof.
Quelques points importants
Cet article est-il utile ? Oui Non