Koukou,
J'utilise un logiciel que je soupçonne d'avoir une fuite mémoire (ou plus exactement d'en consommer de plus en plus au fils du temps).
Je ne suis pas à l'origine du logiciel et j'utilise donc une version compilée (binaire). Je sais que c'est du C++ compilé spécifiquement
pour cette version de Linux.
La plateforme est sous SUSE v8.0 (avec Service Pack 3 et 4).
Pour le moment j'observe le comportement avec top (options utilisation de CODE et DATA ajoutées par défault). Je cron toutes les 15mn un top que je loggue. Je remarque que la valeur de DATA évolue dans le temps (de plus en plus).
Existe t il d'autres outils pour analyser la quantité de mémoire utilisée par un logiciel, sans avoir à intervenir sur le code source (options de compil specifiques, etc.) ?
"top" fournit il des résultats exploitables et utilisables ? J'en viens à me demander si DATA n'est pas un cumul sur le temps d'utilisation.
Je vais creuser le man de top et ce qui se dit sur le Net.
Les tests que je réalise sont de l'ordre de 24h à 10j.
Merci
Khan
# valgrind
Posté par goeb . Évalué à 2.
http://valgrind.org
Mais appremment il faut au moins que ton binaire ait été compilé avec l'option -g.
# Et /proc ?
Posté par Barnabé . Évalué à 2.
Dans le doute, tu peux utiliser /proc/$PID/status, qui contient tout ce que tu veux.
Tu pourrais par exemple essayer :
for i in `seq 60` ; do
grep VmData /proc/$PID/status | awk '{ print $2;}'
sleep 60
done > result.txt
Pour avoir des données sur l'utilisation mémoire pendant 1 heure.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.