Profilage de code
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/02/Circle-icons-computer.svg/35px-Circle-icons-computer.svg.png)
Cet article est une ébauche concernant l’informatique.
Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants.
![Page d’aide sur l’homonymie](http://upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Logo_disambig.svg/20px-Logo_disambig.svg.png)
Pour l’article homonyme, voir Profilage.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/0/08/CodeAnalyst3.png/220px-CodeAnalyst3.png)
En informatique, le profilage de code (ou code profiling en anglais) consiste à analyser l'exécution d'un logiciel afin de connaitre son comportement à l'exécution.
Principe et utilisation
Le profilage de code permet de contrôler lors de l'exécution d'un logiciel :
- la liste des fonctions appelées et le temps passé dans chacune d'elles ;
- l'utilisation processeur ;
- l'utilisation mémoire.
Le profilage du code est implémenté par instrumentation du code source[réf. nécessaire] en rajoutant des instructions au code source originel qui permettent de mesurer le comportement du logiciel lors de l'exécution. Ensuite, un scénario d'utilisation est défini et exécuté sur le logiciel instrumenté. Les données de profilage sont récoltées et analysées à la fin de l'exécution.
Le profilage est utilisé pour identifier les parties de code qu'il faut optimiser selon le principe que l'« on ne peut pas optimiser ce que l'on ne sait pas mesurer » (adaptation du « Si vous ne pouvez pas le mesurer, vous ne pouvez pas le gérer » de Kaplan, co-inventeur du tableau de bord prospectif).
Les données de profilage peuvent aussi être fournies au compilateur lors d'une recompilation du logiciel pour qu'il optimise ce profil d'utilisation. C'est ce que l'on appelle l'optimisation dirigée par les profils (ou « profile-guided optimization » en anglais).
Voir aussi
Liens internes
Exemples de logiciels de profilage du code source :
- Valgrind
- gprof
- ThreadSpotter
- OProfile
Liens externes
- Tutoriel par Matthieu Brucher
- Tutoriel
Portail de l’informatique