Performance, Profiling, & Optimization Tools for Enterprise Java Applications S. Ray Holder Michael J. Donahoo
Project Focus Enhance performance –Identify problems –Load and stress test –Implement/evaluate solutions Improve maintainability –Replace custom solutions –Eliminate boilerplate code Investigate new frameworks
Contest Management System 2.0 ICPC Generalized contest management Production system Modular design Open source technologies Spring (Middleware), Acegi (Security), Hibernate (ORM), JSF (View), Tomcat (Web), MySQL (DB)
Tools of the Trade CPU profiler: JIP Memory profiler: JMX managed bean SQL profiler: Elvyx Custom load/stress testing Framework MySQL/Hibernate
Object Relational Mapping How do we get our object in to and out of a relational database?
ORM Optimizations Lazy fetch –Object graph –Objects –Collections Database optimizations –Indexing –Data placement –Schema Custom queries Caching hints
Entity Security Optimization
Lazy Fetching and Secondary Security Optimization
Future Directions Security model –Maintenance –Performance Next generation frameworks –JBoss Seam 2.0 –Struts 2
Questions