Podle mých zkušeností je velký rozdíl, jestli se použije -client nebo
-server, a jestli je to 32-bitové nebo 64-bitové JVM.
Pokud měřím paměť pomocí Runtime.getRuntime().totalMemory()
tak 32-bit -client si vezme třeba 5MB, kdežto 64-bitový JVM
na stejnou aplikaci třeba 40MB.
Ovšem v tomhle množství paměti není započítána spousta další paměti,
kterou lze zjistit prostředky operačního systému, té je daleko víc.
Pro ten hello world program:
USER PID PPID %MEM %CPU RSS VSZ DRS COMMAND
makub 20818 1 2.2 0.0 23512 193636 193598 java.bin
man ps:
RSS resident set size, the non-swapped physical memory that a task
has used (in kiloBytes).
VSZ virtual memory size of the process in KiB (1024-byte units).
Device mappings are currently excluded; this is subject to change.
Takže si to bere skoro 200MB virtuální paměti.
Makub
Lukas Zapletal napsal(a):
Zdravim konferu,
dnes mi vrtala hlavou jedna vec - jak docilit maximalni uspory pameti
u nejakeho jednoducheho (napriklad maleho konzoloveho) programu?
Provedl jsem nejaka ta mereni, a dospel jsem k zaveru, ze JRE si vezme
na "Hello World" prumerne:
Verze JRE Spotreba
1.4.2_15-b02 5880 kB
1.5.0_12-b04 6824 kB
1.6.0_03-b05 8312 kB
To nejsou spatna cisla, ale pokousel jsem se o nejake srazeni pomoci
-Xms1025k -Xss32k, ale v podstate jsem neuspel. Da se jeste v teto
oblasti nejak "operovat" a minimum snizit?
Zajimave pozorovani: S kazdou major verzi spotreba narusta cca o 1 MB.
http://lukas.zapletalovi.com/blog:hello_world_test_pameti_v_jave
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Science email: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--------------------------------------------------------------