[Java lista] Virtual Memory

Marai Laszlo lists at atleta.hu
2008. Már. 27., Cs, 12:54:12 CET


On Thu, 27 Mar 2008 08:19:53 +0100
<bodis at 4step.hu> wrote:

  Hali!

> S ez mar egy javitott valtozat, mert alapbol a VIRT oszlopban olyan 700M
> szerepelt.
> A fentit CentOS-en 1.5.06-os SUN-os JRE alatt tudom reprodukalni.

A Virt meret azt mutatja, hogy mekkora cimter van az alkalmazas szamara
allokalva. Ez nem jelenti azt, hogy az oprendszer adott is neki ennyi
memoriat. Ha osszeadod csak ennek az 5 alkalmazasnak a meretet, akkor 1G
jonne ki, es nyilvan nincs annyi. A RES meret szamit, ami a rezidens
reszt mutatja. Mondjuk ha nincs GUI-ja a programodnak, es valoban
csak egy Thread.sleep-et csinal (semmi adatgeneralas) akkor az viszont
tenyleg soknak tunik. Kiprobaltam, nalam 1.5-tel 10M, 1.4-gyel 6-7,
1.6-tal 9. De meg ez sem a tenyleges foglalas, mert az oprendszer
raadasul meg meg is osztja a megoszthato memoriateruleteket az egyes
alkalmazasok kozt (pl. library-k, ezert is hibjak oket linux
alatt .so-nak: shared object). Es ez nem csak az egyes jvm-eket jelenti,
hanem minden alkalmazast (libc-t pl. mindenki hasznal linux alatt).

Nalad 16m a shared, ha megegy jvm-et inditasz, akkor ezt biztosan
eloszthatod ketfele, de ennek legalabb egy reszet ugye mas alkalmazasok
is hasznaljak, tehat egy peldanynal sem kell mar igazabol figyelembe
venni. A nalam inditott peldaknal ez olyan 6m. Volt errol valahol egyszer
egy cikk, hogy igazabol eleg nehez meghatarozni egy alkalmazas
memoriahasznalatat, foleg az ilyen minimal esetekben (amiknek amugy
nyilvan eleg keves a gyakorlati ertelme). Azzal jatszhatsz meg, ha meg
akarsz nyugidni, hogy a free parancsot lefuttatod az alkalmazasod
elinditasa elott, es utan, aztan megnezed a ketto kozt akulonbseget.
Szerintem ez a legjobb becsles (mar ha mas processzek kozben nem kavarnak
be). Azzal egy ilyen sima alvo jvm (ugy, h ogy mellette fut nehany masik
valoban tobb szaz megat zabalo) nalam 2-3M-t vesz le. A free-nel a -/+
buffers/cache sort kell figyelni.

> Ha vmi tok trivialisra kerdeztem ra bocs :)

Indits belole 10 peldanyt - hu, hirtelen 7-8G memoria lett a gepedben ;)

  atleta


További információk a(z) Javalist levelezőlistáról