pátek 25. května 2007

Co může nabourat výkonnost vašich J2EE aplikací

Měření výkonu aplikací a jejich profilování bývá většinou odsunuto do chvíle, kdy se nějaké problémy objeví. A to potom zažívají vývojáři nejednu horkou chvilku, když zjišťují co a kde nezvládli úplně nejlépe z hlediská dopadu na výkon aplikace. Teoreticky sice platí první pravidlo optimalizace, které zní "neoptimalizujte", ale to není v praxi tak levné.

Z praxe jsem si ověřil, že valnou většinu výkonnostních problémů aplikace lze odstranit ještě před tím, než jde do produkčního nasazení. Základní pravidlo, které předřazuji před "neoptimalizujte", je prevence ve smyslu "poznej svého nepřítele". Většina výkonnostních problému je totiž způsobena neznalostí a tím pádem nesprávného použití dané technologie. Za technologii si pak můžete dosadit cokoliv, například JDBC, EJB, Hibernate atd.

Každá technologie v oblasti enterprise aplikací má svoje stinné stránky z hlediska výkonosti. Díky prevenci uvnitř týmu se lze skoro zdarma vyhnout nejpalčivějším problémům. Druhou množinu výkonnostních problémů lze celkem spolehlivě odhalit zátěžovými testy. Jedná se například o různé synchronizace, kterou jsou na první pohled skryté (API třetí strany) a způsobují snížení míry paralelizace viz Amdahlův zákon.

Pokud jsem před chvilkou zmiňoval pravidlo "poznej svého nepřítele", tak by se Vám mohlo hodit deset oblastí výkonnostních problémů, které sesbíral a podrobil průzkumu Vincent Partington.

Zábavné na těchto deseti oblastech je to, že je každý vývojář tak trochu nosí v hlavě, ale tak trochu na ně zapomíná, stejně jako na prevenci a výkonové testy...

Související odkazy

pondělí 21. května 2007

Consumer JRE - detaily

Chet Haase na svém blogu zveřejnil detailní informace o připravováném Consumer JRE. Consumer JRE je zaměřeno celkem na šest oblastí, které se zdají jako nejpalčivější z hlediska desktopové Javy a její user experience.

  • rychlý start - zrychlení startovacího procesu (horký i studený start) aplikací
  • Java kernel - modularizace JRE, stažení a instalace součástí, které aplikace opravdu potřebuje
  • Deployment Toolkit - detekce a instalace JRE
  • Vylepšení instalátoru - zjednodušení a polidštění instalačního procesu
  • Zrychlení grafiky na OS Windows - využití grafických akcelerovaných funkcí pro Java 2D a tím pádem pro rychlost Swingu
  • Nový defaultní Look & Feel - Nimbus Look & Feel

Detailní informace o tom, co tyto vylepšení obnášejí si můžete přečíst na zmíněném blogu. Consumer JRE by mělo být k dispozici jako update Java 6 někdy na začátku příštího roku. Některé z vylepšení by se ovšem měly objevit již pro chystaný Java 6 Update 2.

Sun se snaží prací na Consumer JRE napravit hříchy let minulých na desktopové Jave a to v docela šibeničním čase. Tak uvidíme jestli se mu to podaří, všechny zmiňované oblasti určitě Jave na desktopu pomůžou, snad jen Nimbus Look & Feel mě nijak výrazně neohromil.