Cours informatique gestion de mémoire

Cours informatique gestion de mémoire, tutoriel & guide de travaux pratiques en pdf.

Quelques outils

 Purify (Rational / IBM) : le plus connu !
 DevPartner (compuWare) (ex-BoundChecker)
 Insure++ (ParaSoft)
 et en GPL :
 memprof,
 dmalloc,
 mpatrol,
 Boehm Collector,
 …

Les différents outils sont souvent complémentaires !

PROFILER
 Objectifs:
 Analyser les performances et localiser les fonctions consommant le plus de CPU
 déterminer la fréquence des appels et permettre une classification en fonction du contexte (à partir de quelle fonction la fonction étudiée a-t-elle été appelée ?).
Un outil de profiling ne remplace pas une bonne conception et une implémentation soignée, il les complète.
outils …
 Nous étudierons ici un outil assez simple et généraliste:
 gprof de GNU
 puis deux variantes à usage spécifique :
 time
 strace
gprof
 gprof est compatible avec gcc.
 Utilisation : gprof se déroule en trois phases:
 compilation spéciale pour ajouter automatiquement au code des instructions de profiling.
 Il faut ajouter les options -pg à la compilation ET à l’édition de liens.
 exécution du programme : cela crée un fichier binaire de données, par défaut gmon.out
 exécuter gprof pour exploiter les données collectées à l’exécution et obtenir un rapport
gprof
$ gcc -ansi -Wall -c -pg test.c
$ gcc -pg -o test test.o
$ ./test …
Génère gmon.out dans le répertoire courant
$ gprof ./test
….
gprof : données obtenues
 $ gprof mon_executable
 (avec gmon.out présent dans le répertoire courant)
 Flat profile
 liste des fonctions avec le nombre d’appels et le temps total passé dedans, en incluant ou pas les fonctions appelées.
 Permet de repérer très rapidement les quelques fonctions prenant beaucoup de temps.

Call graph

 Beaucoup plus de précisions sur le contexte :
 Contributions par appelant / appelée
 Pour chaque fonction, on a :
 les fonctions appelantes (les lignes au-dessus de la ligne de référence commençant par [i])
 proportion du temps pris par la fonction et par ses « enfants » (l’appel des sous-fonctions)
 nombre d’appels de la fonction, en indiquant aussi les appels récursifs
 pour chaque appel d’ « enfant », contribution de la fonction au nombre total d’appel de cet « enfant ».
gprof : Statistiques …
 les nombres d’appels sont comptabilisés => donc précis et répétables
 Les temps sont échantillonnés (défaut 10 ms), donc sujet à des erreur statistiques
 Importance d’avoir une exécution assez longue
 Possibilité de sommer des « run » …
 Option -s ou –sum

Autres outils…

 Commerciaux
 Quantify (rational => IBM) : Unix/Windows
 DevPartner (compuWare)
time
 L’outil le plus simple !
 donne le temps d’exécution d’une commande:
 le temps écoulé
 le temps CPU en mode utilisateur
 le temps CPU en mode noyau (exécution d’appels systèmes)
la version GNU rajoute, si possible, des informationssur l’utilisation de la mémoire (swap) et des I/O.

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *