Když se podíváte na způsob vývoje u kompilovaných jazyků, vždy vidíte cyklus úprav, přeložení a spušťění. Naštěstí na rozdíl od C++ jsou překlady v Javě ďábelsky rychlé. Pomalejší už je bohužel deploy do servletového kontejneru (o čase pro EJB už raději nemluvím). Pokud tedy sečtete dohromady čas pro kompilace a redeploy, dostanete čas minimálně několik vteřin, obvykle však i desítky vteřin (u některých aplikačních serverů to může být i 5 minut), což v porovnání s PHP, kde uložíte soubor a obnovíte stránku, snižuje produktivitu a tím zvyšuje náklady projektu. U mně osobně platí, že i krátké přerušení práce mne dokáže dostat z koncentrace, a tím ještě zhoršit celý problém.
Pokračování textu Rychlejší vývoj webových stránek v Javě
Měsíc: Duben 2006
Virtuální stroj nebo nativní kód
Dnes proběhla další přednáška v rámci předmětu ZČU "Trendy a technologie v softwarovém inženýrství" na téma virtuální stroj nebo nativní kód.
Přednášel Petr Ferschmann. Obsah je přístupný také jako zip.
K dispozici je i zvukový záznam přednášky.
[podcast]http://dev-blog.ferschmann.cz/prednasky/2006/vm-nebo-nativni-kod.mp3[/podcast]
Tomcat a leaky
Při práci s Tomcatem jsme narazili na memory leaky. Tato chyba nastává při reloadu aplikace v Tomcatu. Nejčastěji se problém projevuje tak, že se zaplní část paměti heap a PermGen, která je použivaná pro načítané třídy (class).
Když tomcat načítá novou webovou aplikaci, uvolní všechny reference na původní ClassLoader a nechá GC, aby paměť uvolnil. Problém ovšem nastane, pokud na tento ClassLoader stále existuje reference. Pokud třída v rodičovském ClassLoaderu (např. část JDBC přímo v JDK) obsahuje odkaz na třídu v našem původním ClassLoaderu, a tím i přímo na na něj, nastane problém.
Problémy mohou způsobovat např. tyto knihovny:
- JDBC DriverManager
- Jasper (JSP compiler)
- CGLIB – v nové verzi již opraveno
My jsme problém vyřešili tak, že v ostrém provozu Tomcat restartujeme a při vývoji jsme zvýšili paměť pro tomcat – -Xmx a
-XX:MaxPermSize=128m. Tím jsme minimalizovali riziko vzniku problému.
Více informací v článku Memory leak – classloader won’t let go.
Firemní jabber server
V poslední době jsme začali mít celkem problémy s ICQ – od změny protokolu po velmi časté odhlašování ze sítě. Proto jsme se rozhodli, že nasadíme vlastní firemní jabber server.
Použili jsme ejabberd. Instalace byla poměrně jednoduchá.
Tím jsme získali tyto výhody:
- bezpečná komunikace po firmě – vše je šifrované a komunikace po firmě putuje jen přes náš server
- snadnou integraci s firemním LDAP serverem – ověřování, seznam účtů a další informace z adresáře
- sdílený seznam kontaktů – ejabberd umožňuje editovat seznam kontaktů na serveru a tak centrálně přidat nového zaměstnance.
- JID schodné s emailovou adresou
A protože dnes používá jabber stále více lidí (také díky Google Talk), začali jsme používat jabber i na komunikaci s našimi zákazníky.