Profilage de code
# Profilage de code

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 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).

