Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Prochaine révisionLes deux révisions suivantes
faq:memoire [2015/04/27 07:02] cicalugafaq:memoire [2018/01/24 10:18] – [Connaître le pic mémoire d'un programme] ltaulell
Ligne 1: Ligne 1:
-===== Connaître le pic mémoire d'un programme ===== 
- 
- 
-Pour connaître le pic mémoire du programme on peut utiliser la commande "time" (qui fournit aussi le temps...) :  
- 
-<code bash> 
- 
-/usr/bin/time -v mon_programme 
- 
-</code> 
- 
-en regardant le champ "Maximum resident set size" 
- 
-Par exemple, pour mon_programme :  
- 
-<code bash> 
- 
-/usr/bin/time -v /home/mon_login/mon_programme.exe IMAGE/p194-t4-v2.inr 
- 
-...  
-Maximum resident set size (kbytes): 12465200  
-...  
- 
-</code> 
- 
-Ici le pic est donc ~12.4 Go 
  
 ===== Connaître la mémoire utilisée à l'instant t au cours de l’exécution ===== ===== Connaître la mémoire utilisée à l'instant t au cours de l’exécution =====
Ligne 37: Ligne 11:
  
  
 +===== Avoir une évolution (une courbe) au cours du temps  =====
  
- +  * soit on se fait notre propre script pour lire régulièrement les infos de /proc/pid/status  
-________ +  * soit on appelle top en background (et éventuellement on redirige la sortie vers un fichier d'output
-Pour connaître le pic mémoire du programme on peut utiliser la commande "time" (qui fournit aussi le temps...:  +
 <code bash> <code bash>
  
-/usr/bin/time -v mon_programme +top --n 100 -d 1 -p pid > output 
- +
-</code> +
- +
-en regardant le champ "Maximum resident set size".  +
- +
-Par exemple, pour mon_programme :  +
- +
-<code bash> +
- +
-/usr/bin/time -v /home/mon_login/mon_programme.exe IMAGE/p194-t4-v2.inr +
- +
-...  +
-Maximum resident set size (kbytes): 12465200  +
-... +
  
 </code> </code>
  
-Ici le pic est donc ~12.4 Go+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  
 +  * soit on utilise des outils d'analyse plus puissants (mais plus difficiles à les apprendre), p.exValgrind (avec son module "massif"