Pour avoir une idée de la conso mémoire d’un programme, sous Linux, j’utilise smem. Sa particularité, outre de présenter les résultats sous forme bien sympa si on utilise les bons arguments, est de proposer plusieurs indicateurs : la consommation mémoire standard, RSS ou resident set size, mais aussi une mesure tenant compte des zones mémoires partagées par plusieurs applications, et donc moins surestimée : la proportional set size (PSS). Une fois installé via yum ou apt, on peut le lancer directement sans argument, pour avoir la liste des process consommant de la mémoire pour l’utilisateur. Si on rajoute l’option -t, on a une ligne avec le total. L’option -k permet d’ajouter l’unité (Mb ou Gb). On peut aussi lui demander la conso mémoire d’un process en particulier, avec -P (on met un crochet sur la 1ere lettre pour éviter de voir apparaitre la commande smem dans la liste :
$ smem -t -k -P [i]ceweasel PID User Command Swap USS PSS RSS 24263 aline /usr/lib/iceweasel/plugin-c 0 102.4M 106.2M 116.9M 21283 aline iceweasel -P -no-remote 0 435.1M 439.2M 455.0M 28465 aline iceweasel -P -no-remote 0 812.6M 815.3M 831.3M ------------------------------------------------------------------------------- 154 1 0 1.3G 1.3G 1.4G
J’aime bien cet affichage, car il est lisible et permet d’avoir d’un coup d’œil la somme de la mémoire consommée par tous les process liés à une application… et en unités compréhensibles, en plus ! Si on est fan de graphiques, smem permet aussi de représenter la consommation mémoire sous forme de pie chart, ou de barres. Par exemple, le consommation de tous les processus de l’utilisateur, par nom :
$ smem --pie=name
Donnera l’image suivante :
Un graphique en barre de la consommation mémoire sur les processus de Chrome donnera :
$ smem -P [c]hrome --bar=name
Et pour finir, un petit camenbert sur la consommation de Iceweasel :
$ smem -P [i]ceweasel --pie=name
Ce n’est pas super sexy, mais c’est tout de même très lisible, je trouve, et bien plus parlant qu’un tableau avec des unités en octets ! :p