Analyse des performances
Une fonction f qui s'exécute en 20 ns par appel est appelée des millions de fois. On la mesure avec un profileur par instrumentation qui insère du code d'enregistrement à l'entrée et à la sortie des fonctions. Si l'enregistrement prend 60 ns au total par appel et que tout ce temps est compté dans f, combien de fois son temps réel le temps mesuré de f devient-il ?
- A3 fois
- B4 fois
- CInchangé (1 fois)
Afficher la réponse et l'explication
Réponse : B. 4 fois
Chaque appel mesuré de f dure les 20 ns réelles plus 60 ns d'enregistrement, soit 80 ns, et 80 ÷ 20 = 4 fois. Ce phénomène, où le mécanisme de mesure modifie le comportement même que l'on mesure, s'appelle l'effet de sonde. L'enregistrement remplace aussi le contenu du cache, si bien qu'en pratique le ralentissement peut être encore plus fort. Pour les programmes comportant beaucoup de petites fonctions, on mesure la répartition du temps par échantillonnage, ou l'on soustrait le surcoût de la mesure elle-même.