[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: 8 communicators = 165 Mo de RAM



On 28-Feb-00 Georges MARIANO wrote:
> Laurent Pelecq wrote:
> 
>> Non, sous UNIX le code des programmes est partagé. Donc le code n'est
>> chargé qu'une fois.
>> 
>> L'avantage d'une librairie dynamique c'est quand des programmes
>> différents utilisent la même librairie. Dans ce cas on a évidemment
>> une copie de chaque programme mais une seule fois la librairie.
> 
> je veux bien mais
> /usr/lib/netscape/461/communicator/communicator-smotif.real pese 12 Mo
> donc, dans ton hypothese, d'ou viennent les 
>       165-12 Mo ???

La zone partagée par les différents process est comptée pour chacun d'entre
eux. Si tu fais la somme des mémoires occupées par tout tes process, tu
verras que tu dépasse largement la mémoire totale utilisée par ton système.
Donc chacun de tes netscape est indiqués comme consommant 12 Mo, mais en fait,
en tout, ils consomment beaucoup moins...

Par exemple, avec 2 netscapes, tu aurais :

    netscape 1           netscape 2
  -------------         ------------
  |           |         |          |    
  |   code    | 8 Mo    |   code   | 8 Mo
  |           |         |          |
  -------------         ------------
  |           |         |          |
  | données 1 | 4 Mo    |          | 6 Mo
  |           |         |données 2 |
  -------------         |          |
                        ------------

En théorie, la mémoire totale consommée par tes process est de :
        (8+4)+(8+6) = 26 Mo (ce que t'indiquent gmemusage, top et autres...)

Mais en réalité, tu ne consommes que :
        8+4+6 = 18 Mo

Les choses sont en réalité plus compliquées, à cause des bibliothèques
partagées et autres joyeusetés, mais en gros, c'est comme ça.

========================
Alexandre Vitrac
CS SI ATHESA
E-mail : avitrac@cea.fr
========================


Reply to: