co mate furt s tou pamatou? preco by to malo zrat 100 mega? ved si to nastavim, kolko to ma zrat maximalne a dovi dopo.
A aj ked by to malo zrat 100 mega, a co? ved mam server (nemam ho, ale to len pre priklad) ktory ma 8 giga ramky, nastavim si ze nejaky demon nech zaberie maximalne nejakych 100 mega. Kde je akoze problem?
Zoberme si ten JBoss AS / Wildfly, jeho defaultne nastavenie ohladom pamati je:
-server -XX:+UseCompressedOops -XX:+TieredCompilation -Xms64m -Xmx512m -XX:MaxPermSize=256m
Co znamena ze
Xms - nastartuje to server so 64 mega a maximalne to moze zrat 512 mega. Podotykam ze toto je "tovarenske" nastavenie.
nastavim to na
-Xms32m -Xmx128m -XX:MaxPermSize=64m
Spustim to a ide to, ziadny problem. Bude to zrat max 128 mega. to je tiez stale take strasne? Na Java EE aplikacny server so vsetkymi ficurami?
Ja nehovorim, ze to bude zvladat nejaku extra zataz. Nie, nebude. Lenze ja ani nepotrebujem, aby to nejaku extra zataz zvladalo. Schvalne som skusil este to nove nastavenie osekat na polovicu:
-Xms16m -Xmx64m -XX:MaxPermSize=32m
pozriem do jvisualvm, drzi sa to celkom v pohode, cuduj sa svete, stale to ide. vypol som subsystemy, ktore nebolo treba, len aby to zralo "menej". Je to len pre osobne potreby, nejaky demon si tam moze bublat kolko chce ...
Inak,
skusal som dnes Weld kontajner skrz weld-se s Java SE takym sposobom, ze som si spravil simple maven projekt s weld-se ako dependency a spravil som si uplne trivialnu hello world aplikaciu. Zabalil som to do jedneho jarka s maven-assembly-plugin so vsetkymi dependecies (tzv. uber jar) a zozralo to neuveritelne tri mega. To asi neprezijem.
Taktiez som skusal, kolko bude trvat, kym to spustim ako command zo shellu. Startuje sa cely CDI container pri kazdom spusteni jaru takze to trvalo nejake 3-4 sekundy. Zobral som na to ten nailgun co sa tu spominal vyssie. Nastartoval som ten nailgun server, spustil som cez nailgun klienta main triedu toho jarka, start trval (tj. start CDI kontajneru + vykonanie hello world) ... a teraz sa podrzme ... 0.3 sekundy! nula cela tri sekundy. To je pomale?
Mam za to dependency injection podla JSR-299 v konzolovych aplikaciach
When executing Weld in the SE environment the following features of Weld are available:
POJOs (no EJBs)
Typesafe Dependency Injection
Application and Dependent Contexts
Qualifiers
Stereotypes
Typesafe Event Model
potom tam mam sa mi zda este interceptory a dekoratory, taktiez na to mozem pouzit JPA, to sa mi zda tiez funguje standalone, ale nebudem tam moc pouzivat transakcie, to fakt ozeliem ...
Vsetko to je len zalezitost nastavenia a konfiguracie, ja v tom nevidim ziadny problem fakt ...
Absolutne nic nebrani tomu pouzivat javu na servery aj v konzolovych aplikaciach. Aj ked by sa nepouzil Weld, stale to je nailgun a ine DI frameworky ako Guice a podobne ...