Néha kapok ilyesmi hibaüzenetet az Apache Tomcat-től:
Mind memória, mint tárterület bőven van, a Google pedig ilyesmit említ erre... :(org.apache.jasper.JasperException: PermGen space
Page
viewed times
#trackbackRdf ($trackbackUtils.getContentIdentifier($page) $page.title $trackbackUtils.getPingUrl($page))
8 Comments
Kasza Miklós
Auth Gábor
Kasza Miklós
Valahol ugy olvastam, hogy ide (a PermGen teruletre) teszi be azokat a dolgokat, amelyek nem kerulnek kitakaritasra. Asszem ilyenek peldaul az osztalyok, metodusok, stb. Ezeket a GC nem takaritja ki (csak az objektumokat) (Persze lehet, hogy tevedek, a generacios szemetgyujtes sosem volt az erossegem, pedig erdekelne, csak mindig lusta vagyok elolvasgatni az idevago dolgokat)
Mindegy, nekem ez a beallitas bejott, korabban az Eclipse-et is igy kellett inditani a sok sz@r (ertsd: hasznos segedeszkozok :)) miatt, de a Glassfish-t is mindig igy futtatom, mert olyan piszok lassan indul el nalam, hogy ilyenek miatt inkabb nem inditgatok ujra (az mas kerdes, hogy igy meg mas miatt lesz lassu egy ido utan :))
Auth Gábor
A Java három memóriaterületre osztja azt, ami a rendelkezésére áll: óvoda, felnőtt és permanens... :)
Az elsőbe kerülnek azon példányok, amik létrejönnek és meg is szűnnek (helyi változók például).
A másodikba kerülnek azok, amelyek több időt élnek, de nem örökké...
A harmadik pedig a betöltött osztályok területe, és a String.intern típusé. Ez kanonikus módra alakítja a String-et, vagyis össze lehet hasonlítani az == operátorral, viszont ekkor a PermGen területre kerül.
A Tomcat viszonylatában ott jelentős ez, hogy az XML feldolgozás során a sok azonos tag név okán String.intern típust használnak, ami ugye permanens tárba kerül és mivel a JSP-k és a konfigfájlok mind-mind XML... előbb-utóbb elfogy a PermGen space...
tvik
tvik
Nem baj, lényeg hogy az Eclipse is csinálta. Lehet hogy eredetileg más topikba akartam ezt beírni. :)
Auth Gábor
Auth Gábor
Közben keletkezett egy írásom, ahol a PermGen probléma elkerüléséhez van néhány tipp: Nincs többé PermGen hiba