joi, 8 ianuarie 2009

Profiling-ul aplicatiilor web in Java

"4% din cod ocupa 50% din timpul de rulare al unui program" - Donald Knuth

Deci se merita sa gasim cei 4% pentru ca optimizarea lor va avea efecte substantiale. Jamon este un tool care ne permite monitorizarea operatiilor dintr-o aplicatie web Java, si una din metodele de a se integra intr-o aplicatie web este sub forma unui filtru. Standardul J2EE specifica prezenta unor filtre intr-o aplicatie web, care permit interceptarea tuturor request-urilor si efectuarea unor actiuni la interceptare. Sunt necesare doar cateva linii de cod (in afara de plasarea jar-ului Jamon la locatia potrivita), si le puteti gasi la sfarsitul articolului. Frumusetea solutiei oferite de el este ca nu este nevoie sa schimbati codul aplicatiei deja scrise, are performante foarte bune (pot spune ca l-am vazut implementat in productie cu succes) si este de un real ajutor!

Ce stie sa monitorizeze? Timpul de rulare, exceptiile aruncate, si diverse statistici matematice legate de acestea, pentru:
  • request-uri HTTP
  • accesul la baza de date, printr-un driver JDBC de tip proxy, care are rolul de a intercepta apelurile catre baza de date, sa le dea mai departe catre driver-ul care trebuie sa le execute, si sa monitorizeze timpul de acces
  • apelurile catre metodele oricarei interfete Java: creaza un proxy dinamic la runtime, care monitorizeaza apelurile dvs. si le da mai departe; o metoda de a implementa acest lucru este folosind API-ul Dynamic Proxy, care are suport nativ in JVM-urile recente
Cum arata monitorizarea unui cod folosind Jamon? Foarte simplu!
Monitor mon = MonitorFactory.start(opName);
/* Code being timed */
mon.stop();

Niciun comentariu:

Trimiteți un comentariu