Ahoj. Překvapuje že po 26 letech co tu s námi Java je stále existují lidé kteří neví ani základy jak funguje memory management JVM. Asi trpím profesní slepotou :-)
Java si při svém startu ukousne poměrně velký kus paměti na uložení objektů (té paměti se říká heap). Počáteční velikost heapu se dá upravit argumentem -Xms (třeba -Xms1G). Jak aplikace běží, do heapu jsou ukládány "živé" objekty. Obsazeno z pohledu Javy mohou být jen procenta heapu. Jednou za čas se spustí Garbage collector, který objekty v heapu projde, najde ty které nejsou používány a smaže je... V okamžiku kdy je paměti málo (garbage collector není schopný uvolnit paměť), Java si alokovaný heap zvětší. Až do maximální velikosti, která je defaultně 1/4 dostupné systémové paměti, nebo 1GiB. To se dá nastavit argumentem -Xmx (třeba -Xmx4G). > Kdyz stahnes jeden "ctverecek" kterej ma rekneme +- 1MB RAW dat, tak si > josm sezere ... a prave jsem to vyzkousel, 1,3GB. Nic dalsiho krome > nejakych pluginu nacteno neni. Zadny podklady, nic. Kdyz pod to hodim > fotomapu a KM, tak to schroupe "jen" dalsich cca 500MB. Po donacteni > rekneme "ridciho" okoli - zhruba stejna plocha jen mimo obec - (cca > 200kB RAW) to prihodilo dalsich cca 200MB. > > Takze se da (zhruba) rict, ze kazdy 1MB stazeny z OSM = +1GB zabrany > ramky. (tohle opet zhruba odpovida maximalni plose kterou OSM dovoli > jednim vrzem) Z toho co jsem psal, dívat se na paměť Java aplikací z perspektivy co mají alokováno v systému je zavádějící. > > IMO tech +- 300MB je vlastni apka + pluginy. Prazdny josm si mi po > spusteni zblajzne prave 1GB, ale pocitam ze vetsina je prazdna "doforoty". Přesně tak, jedná se o alokovaný heap, nikoliv obsazený. > Urcite by se to dalo zjistit presne, tohle je jen velmi hrubej odhad. > Ale je to pekelne nenazrana appka ;D. Dá se k tomu použít například jvisualvm, který je součásti JDK (java development toolkit). Použití Javy pro desktopovou aplikaci jako JOSM není nejšťastnější, protože taková aplikace často neběží v systému sama a jde těžko předem přidělit systémové prostředky... Obecně je vhodné Javě poskytnout dostatek paměti. časté spouštění garbage collectoru je výpočetně náročné a aplikace se pak "seká". Zároveň ale né tolik aby systém nezačal swapovat. S pozdravem, Lukáš
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ talk-cz mailing list talk-cz@openstreetmap.org https://lists.openstreetmap.org/listinfo/talk-cz https://openstreetmap.cz/talkcz