Ceci est une ancienne révision du document !
Connaître la mémoire utilisée à l'instant t au cours de l’exécution
Il y a ici les diverses mémoires utilisées par le process dont VmPeak (virtuelle), VmHWM (physique), VmRSS (résiduelle). La résiduelle devrait suffire dans ton analyse.
regarder “top” - on peut rajouter des colonnes en tapant “f” (fields) ; “top” se base sur les informations contenues dans /proc/pid/status
on peut aussi accéder aux informations contenues dans /proc/pid/status depuis le programme lui même. Par exemple, depuis C :
https://bitbucket.org/code_aster/codeaster-src/src/tip/bibc/utilitai/mempid.c
Avoir une évolution (une courbe) au cours du temps
top -b -n 100 -d 1 -p pid > output
où
pid est à remplacer par le numéro du process qu'on veut suivre (qui est obtenu avec top ou ps, mais on peut automatiser)
(ou 100 est le nombre de fois et 1 c'est le pas en secondes)
soit on appelle la fonction C ci-dessus à certains points du programme (là où on sait qu'il y a eu des allocations/desalocations mémoire importantes)
soit on utilise des paquets déjà faits, comme ceux-ci (psutil ou ressource) en Python :
http://fa.bianp.net/blog/tag/memory_profiler.html