Zvýšenie pamäte Javy

Klient sa zasekáva a prestáva reagovať - málo pamäte

Petr Pech avatar
Written by Petr Pech
Updated over a week ago

Ak sa váš klient po určitom čase používania začne zasekávať, intenzívne využívať procesor a nakoniec úplne prestane reagovať, pravdepodobne máte nastavenú nízku pamäť pre proces Javy. Táto situácia môže typicky nastať pri generovaní tlačových zostáv alebo pri exporte veľkého množstva údajov.

Identifikácia problému

Tento krok môžete preskočiť. Problém s nedostatkom pamäte možno overiť spustením klienta z príkazového riadku (terminálu) za predpokladu rovnakej konfigurácie pamäte ako pri bežnom spustení (pozri konfiguračné súbory). Klienta môžete spustiť z príkazového riadku nasledujúcimi spôsobmi:

  • Windows: C:\Program Files (x86)\WinStrom\spustit-winstrom.bat Pred spustením porovnajte parametre v tomto súbore so súborom parameters.txt

  • Linux: v okne terminálu spustite /usr/bin/flexi identicky ako pri bežnom spustení aplikácie

  • MacOS: v okne terminálu spustite /Applications/FlexiBee.app/Contents/MacOS/flexi-console Pred spustením porovnajte parametre v tomto súbore s konfiguráciou v Info.plist

Pri zaseknutí konzoly z dôvodu nedostatku pamäte sa potom v konzole zobrazia nasledujúce chyby:

  1. java.lang.OutOfMemoryError: Java heap space

  2. java.lang.OutOfMemoryError: permGen space

  3. java.lang.OutOfMemoryError: Prekročenie limitu réžie GC

Prvý indikuje nedostatočnú celkovú veľkosť pamäte a možno ho upraviť pomocou parametra Java -Xmx, zatiaľ čo druhý indikuje nedostatočnú veľkosť oblasti PermGen a možno ho upraviť pomocou parametra -XX:MaxPermSize.

Nastavenie parametrov

Hodnoty parametrov, ktoré ovplyvňujú maximálnu veľkosť pamäte aplikácie, môžete zmeniť v týchto konfiguračných súboroch:

  • Windows: C:\Program Files (x86)\WinStrom\parameters.txt alebo cesta, kam ste nainštalovali Flexi

  • Linux: /etc/default/flexi pridať parameter: Flexi_JAVA_ARGS="${FLEXI_JAVA_ARGS} -Xmx1g -XX:MaxPermSize=256m"

  • MacOS: /Applications/Flexi.app/Contents/Info.plist

Odporúčané hodnoty parametrov:

Minimálne odporúčané zvýšenie

Java heap -Xmx1g -Xmx1200m

PermGen -XX:MaxPermSize=128m -XX:MaxPermSize=256m

Ak potrebujete viac ako 1 GB pamäte, odporúčame použiť 64bitovú Javu. 32bitová Java má limit 1 - 1,2 GB v závislosti od operačného systému. V prípade, že balík preinštalujete, budete bohužiaľ musieť znovu nastaviť parametre (platí pre systémy Windows a macOS).

Did this answer your question?