Poslední dobou si mi kde kdo stěžuje na to, že FlexiBee všechno dlouho trvá a zasekává se. Dost často je to způsobeno nedostatkem přidělené paměti. Je celkem jedno kolik paměti váš počítač má. FlexiBee dostane (jako každý program napsaný v javě) přidělenou jen přesně definovanou část operační paměti.
Přidělené množství paměti je ale možné zvýšit. Tuto úpravu je nutné provést na každém počítači, kde se s FlexiBee pracuje.
32bitová nebo 64bitová Java
Jak velké množství paměti můžete přidělit závisí na tom, zda vám FlexiBee běží v 32bitové nebo 64bitové Javě.
Pokud vaše FlexiBee používá 64bitovou Javu, máte vyhráno. Můžete nastavit mnohem více a tím mít FlexiBee „svižnější“ 😉.
Pokud máte nainstalovánu 32bitovou Javu, doporučuji ji odinstalovat a nainstalovat si 64bitovou.
32bitová Java totiž umožňuje adresovat (a tedy i nastavit) mnohem méně paměti než 64bitová. Z principu je maximální velikost paměti přidělené 32bitové Javě 4GB, ale je zde nastaven maximální limit. Ten se mění podle velikosti paměti v počítači a je také závislý na operačním systému. V častých dotazech k Java VM je uvedeno, že se limit pohybuje někde mezi 1,4 a 1,6GB. V praxi mám ale ověřeno, že je ještě níže. Někde kolem 1,2GB a občas i méně.
Jak zjistím, jakou Javu FlexiBee využívá?
Tuto informaci je možné zjistit z okna O aplikaci FlexiBee (horní menu Nápověda – O aplikaci FlexiBee). Po zobrazení okna překlikneme na záložku Detaily o aplikaci. Zajímá nás řádka Verze javy.
Pokud se v ní vyskytuje 64-Bit, tak FlexiBee běží na 64bitové Javě.
Pokud se v ní vyskytuje 32-Bit NEvyskytuje 64-Bit, tak FlexiBee běží na 32bitové Javě a bylo by tedy dobré aktualizovat na 64bitovou.
Jak nastavím více paměti?
Musíme najít konfigurační soubor. Jeho umístění je závislé na používaném operačním systému.
Windows
Konfigurační soubor parametry.txt je umístěn
C:\Program Files (x86)\Winstrom\parametry.txt
Případně v adresáři, do kterého jste si FlexiBee nainstalovali.
Otevřeme ho v Poznámkovém bloku (neotvírejte ve Wordu, Wordpadu ani v podobných aplikacích)!!!
Obsah souboru bude vypadat nějak takto:
-splash:splashscreen.png -Xmx800m -Xms250m -XX:MaxPermSize=128m -XX:-OmitStackTraceInFastThrow -XX:+IgnoreUnrecognizedVMOptions --add-modules=java.xml.ws -Dwinstromdir=.\lib -Dclassworlds.conf=.\lib\launcher.txt -classpath .;.\lib\classworlds-1.1.jar org.codehaus.classworlds.Launcher
Najděte parametr -Xmx a -XX:MaxPermSize a nastavte je na požadované hodnoty.
S největší pravděpodobností budete potřebovat pro editaci souboru parametry.txt administrátorský přístup.
Nejjednodušší postup je tedy:
- stiskněte tlačítko Okno a začněte napište notepad. Windows by měli najít aplikaci Poznámkový blok.
- klikněte na Poznámkový blok pravým tlačítkem myši a zvolte možnost Spustit jako správce.
- potvrďte, že opravdu chcete spustit Poznámkový blok jako správce
- přes menu Soubor – Otevřít otevřete soubor parametry.txt
- upravte soubor a uložte ho
Linux
Na počítačích s operačním systémem Linux se změny provádí v soubor /etc/default/flexibee.
Otevřeme si ho tedy jako root a upravíme.
sudo vim /etc/default/flexibee
Odkomentujeme (odstraníme # na začátku řádku) řádek FLEXIBEE_JAVA_ARGS a doplníme do něho -Xmx=hodnota a -XX:MaxPermSize=hodnota.
Řádek tedy bude vypadat například takto:
FLEXIBEE_JAVA_ARGS="${FLEXIBEE_JAVA_ARGS} -Xmx2g -XX:MaxPermSize=512m"
macOS
Pokud máte počítač s operačním systémem macOS, musíte upravit soubor
/Applications/FlexiBee.app/Contents/Info.plist
Najděte v něm <string>-Xmx800m</string> a hodnotu změňte na požadovanou.
Ke změnám souboru Info.plist používejte program TextEdit.
Jaké hodnoty zvolit?
Pokud máte počítač s 8GB operační paměti doporučoval bych hodnotu Xmx nastavit na 2g (2 GB operační paměti).
Parametr XX:MaxPermSize nastavit třeba na 512m (512 MB).
Hodnota je vždy číslo a pak identifikátor jednotky. Povolené identifikátory jsou g a G pro gigabyte, m a M pro megabyte a k a K pro kilobyte.
Popis parametru -Xmx
https://docs.oracle.com/cd/E13150_01/jrockit_jvm/jrockit/jrdocs/refman/optionX.html#wp999528
Na co si dát pozor a řešení problémů
FlexiBee nenabíhá – asi jste zvolili moc vysokou hodnotu. Zkuste trochu ubrat 😉.
FlexiBee je zase pomalé i když dřív bylo rychlé – nepřeinstalovali jste FlexiBee? Pokud ano, musíte vše nastavit znovu. Přeinstalací FlexiBee se totiž nastaví opět výchozí hodnoty.
Jo a dejte si pozor na to, že mezi parametrem Xmx a jeho hodnotou NENÍ rovnítko, kdežto mezi parametrem XX:MaxPermSize a jeho hodnotou rovnítko JE 😉.
Poznámky z praxe 😀
Jednou jsem dostal za úkol vyexportovat z FlexiBee do PDF obrovskou Hlavní knihu. Po nastavení Xmx na 20g se to podařilo (můj notebook měl 32GB RAM).
Nastavení více paměti umožní vygenerovat opravdu rozsáhlé PDF a XLS soubory.
V popisech FlexiBee jsou doporučené hodnoty Xmx 1g a XX:MaxPermSize 256m. Já si ale myslím, že je to dost málo. Klidně nastavte víc.