Re: Unterschied zwischen "SIZE" und "RES"

From: Oliver Fromme <olli(at)secnetix.de>
Date: Tue, 3 Jul 2001 15:52:18 +0200 (CEST)

Volker <V(at)trendsetter.de> wrote:
> kann mir von Euch jd. mal sagen, was der Unterschied zwischen den via
> TOP-Kommando ausgegebenen Spalten "SIZE" und "RES" ist?

SIZE (virtual size) ist alles, was das Programm irgendwie
gemappt hat. Das schließt unter anderem auch Shared-libra-
ries ein, Dateien, die ge-mmap()'t wurden usw. Diese Anga-
be kann ohne weiteres größer sein als Dein verfügbarer
Speicher (RAM + Swap zusammen).

RES (resident set size, RSS) ist die Summe aller Pages, die
tatsächlich in den RAM gemappt sind. Dies kann Null sein,
wenn ein Prozeß vollständig ausgeswappt ist.

> Ich habe ein Java-Programm laufen, das angeblich 42892K (also knapp
> 43MB) unter SIZE aufweist, was mir ein Rätsel ist. Bei RES steht nur
> 12816K.

Nun, dafür kann es eine ganze Reihe von Erklärungen geben
(mal davon abgesehen, daß Java generell zu einem nicht un-
erheblichen Memory-Footprint tendiert).

Bei einem C-Programm würde es schon genügen, eine Datei,
die 43 Mb groß ist, vollständig zu mappen. Oder 43 Mbyte
Shared-memory anzulegen. Solange auf diese Pages keine
Schreibzugriffe erfolgen, benötigen sie auch keinen Spei-
cher (sofern sie nicht mit pre-allocate gemappt wurden);
man muß sich also nicht unbedingt Sorgen machen. Kommt
halt darauf an, was das Programm konkret damit anstellt.

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"All that we see or seem is just a dream within a dream" (E. A. Poe)
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 03 Jul 2001 - 15:52:22 CEST

search this site