Gprof/fr: Difference between revisions

From Alliance Doc
Jump to navigation Jump to search
(Created page with "== Préparation du code == === Charger le compilateur === Chargez le compilateur GNU approprié; par exemple pour GCC la commande est {{Command|module load gcc/7.3.0}}")
(Created page with "=== Compiler le code === Compilez d’abord votre code avec la fonction de débogage activée; pour les compilateurs GNU, ceci se fait en ajoutant l’option <tt>-pg.</tt> à...")
Line 12: Line 12:
{{Command|module load gcc/7.3.0}}
{{Command|module load gcc/7.3.0}}


=== Compiling your code ===
=== Compiler le code ===
To get useful information from [https://sourceware.org/binutils/docs/gprof/ gprof], you first need to compile your code with debugging information enabled. With the GNU compilers, you do so by adding the <tt>-pg</tt> option to the compilation command. This option tells the compiler to generate extra code to write profile information suitable for the analysis. Without this option, no call-graph data will be gathered and you may get the following error:
Compilez d’abord votre code avec la fonction de débogage activée; pour les compilateurs GNU, ceci se fait en ajoutant l’option <tt>-pg.</tt> à la commande de compilation. Avec cette option, le compilateur génère du code pour enregistrer l’information qui sert à l’analyse de profilage. Sans cette option, les données pour composer un graphe d’appel ne sont pas collectées et vous pourriez voir le message d’erreur
<pre>
<pre>
gprof: gmon.out file is missing call-graph data
gprof: gmon.out file is missing call-graph data
</pre>
</pre>
=== Executing your code ===
=== Exécuter le code ===
Once your code has been compiled with the proper options, you then execute it:
Pour exécuter le code, lancez
{{Command|/path/to/your/executable arg1 arg2}}
{{Command|/path/to/your/executable arg1 arg2}}
You should run your code the same way as you would without gprof profiling; the execution line does not change.
Faites exécuter le code de la même manière que vous le feriez sans profilage avec gprof; la commande pour l’exécution est la même. Une fois le binaire exécuté et complété sans erreur, le fichier <tt>gmon.out</tt> est créé dans le répertoire courant. Si par exemple votre code change le répertoire courant, <tt>gmon.out</tt> sera créé dans le nouveau répertoire courant, pourvu que le programme dispose des permissions pour ce faire.  
Once the binary has been executed and finished without any errors, a new file <tt>gmon.out</tt> is created in the current working directory. Note that if your code changes the current directory, <tt>gmon.out</tt> will be created in the new working directory, insofar as your program has sufficient permissions to do so.  


=== Getting the profiling data ===
=== Getting the profiling data ===

Revision as of 15:29, 8 October 2020

Other languages:

Profileur GNU gprof

Description

gprof est une application de profilage qui collecte de l’information et compile des statistiques sur votre code. De façon générale, gprof trouve les fonctions et les sous-routines dans le programme et y insère des temps de calcul pour chacune. Quand le programme est exécuté, un fichier de données brutes est créé et interprété par gprof qui en tire des statistiques de profilage.

gprof est fourni avec la suite GNU et est disponible via le module gcc.

Préparation du code

Charger le compilateur

Chargez le compilateur GNU approprié; par exemple pour GCC la commande est

Question.png
[name@server ~]$ module load gcc/7.3.0

Compiler le code

Compilez d’abord votre code avec la fonction de débogage activée; pour les compilateurs GNU, ceci se fait en ajoutant l’option -pg. à la commande de compilation. Avec cette option, le compilateur génère du code pour enregistrer l’information qui sert à l’analyse de profilage. Sans cette option, les données pour composer un graphe d’appel ne sont pas collectées et vous pourriez voir le message d’erreur

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

Exécuter le code

Pour exécuter le code, lancez

Question.png
[name@server ~]$ /path/to/your/executable arg1 arg2

Faites exécuter le code de la même manière que vous le feriez sans profilage avec gprof; la commande pour l’exécution est la même. Une fois le binaire exécuté et complété sans erreur, le fichier gmon.out est créé dans le répertoire courant. Si par exemple votre code change le répertoire courant, gmon.out sera créé dans le nouveau répertoire courant, pourvu que le programme dispose des permissions pour ce faire.

Getting the profiling data

In this step the gprof tool is executed again with the binary name and the above mentioned gmon.out as argument; the analysis file is created with all the desired profiling information.

Question.png
[name@server ~]$ gprof /path/to/your/executable gmon.out > analysis.txt