Skip to content

Profileur GNU gprof

Description

gprof est une application de profilage qui recueille des informations et compile des statistiques sur votre code. En règle générale, gprof identifie les fonctions et les sous-routines dans le programme et y insère des marqueurs pour mesurer le temps d'exécution de chacune. Quand le programme est exécuté, un fichier de données brutes est créé, puis interprété par gprof pour en extraire des statistiques de profilage.

gprof est inclus dans la suite GNU et est accessible via le module gcc.

Préparation du code

Charger le compilateur

Chargez le compilateur GNU adéquat; par exemple, pour GCC, la commande est :

module load gcc/7.3.0

Compiler le code

Commencez par compiler votre code avec la fonction de débogage activée. Pour les compilateurs GNU, cela se fait en ajoutant l'option -pg à la commande de compilation. Avec cette option, le compilateur génère le code nécessaire pour enregistrer les informations utiles à l'analyse de profilage. Sans elle, les données pour construire un graphe d'appel ne sont pas recueillies, et vous risquez de voir le message d'erreur suivant :

gprof: gmon.out file is missing call-graph data

Exécuter le code

Pour exécuter le code, lancez la commande suivante :

/path/to/your/executable arg1 arg2

Exécutez le code de la même façon que vous le feriez sans profilage gprof; la commande d'exécution demeure identique. Une fois le binaire exécuté et terminé sans erreur, le fichier gmon.out est créé dans le répertoire de travail actuel. Si, par exemple, votre code modifie le répertoire de travail, gmon.out sera alors créé dans ce nouveau répertoire, à condition que le programme ait les permissions nécessaires.

Obtenir les données de profilage

Dans la commande ci-dessous, gprof est exécuté avec, comme arguments, le nom de l'exécutable et le fichier gmon.out. Le fichier analysis.txt sera créé dans le répertoire de travail actuel et contiendra toutes les informations de profilage.

```bash gprof /path/to/your/executable gmon.out > analysis.txt