10
Performance, Performance, Profiling, & Profiling, & Optimization Tools for Optimization Tools for Enterprise Java Enterprise Java Applications Applications S. Ray Holder Michael J. Donahoo

Performance, Profiling, & Optimization Tools for Enterprise Java Applications

Embed Size (px)

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

Page 1: Performance, Profiling, & Optimization Tools for Enterprise Java Applications

Performance, Profiling, & Performance, Profiling, & Optimization Tools forOptimization Tools forEnterprise Java ApplicationsEnterprise Java Applications

S. Ray Holder

Michael J. Donahoo

Page 2: Performance, Profiling, & Optimization Tools for Enterprise Java Applications

Project FocusProject Focus

Enhance performance– Identify problems– Load and stress test– Implement/evaluate solutions

Improve maintainability– Replace custom solutions– Eliminate boilerplate code

Investigate new frameworks

Page 3: Performance, Profiling, & Optimization Tools for Enterprise Java Applications

Contest Management System 2.0Contest Management System 2.0

ICPCGeneralized contest managementProduction systemModular designOpen source technologies

Spring (Middleware), Acegi (Security), Hibernate (ORM), JSF (View), Tomcat (Web), MySQL (DB)

Page 4: Performance, Profiling, & Optimization Tools for Enterprise Java Applications

Tools of the TradeTools of the Trade

CPU profiler: JIPMemory profiler: JMX managed beanSQL profiler: ElvyxCustom load/stress testing

Framework MySQL/Hibernate

Page 5: Performance, Profiling, & Optimization Tools for Enterprise Java Applications

Object Relational MappingObject Relational Mapping

How do we get our object in to and out of a relational database?

Page 6: Performance, Profiling, & Optimization Tools for Enterprise Java Applications

ORM OptimizationsORM Optimizations

Lazy fetch– Object graph– Objects– Collections

Database optimizations– Indexing– Data placement– Schema

Custom queries Caching hints

Page 7: Performance, Profiling, & Optimization Tools for Enterprise Java Applications

Entity Security OptimizationEntity Security Optimization

0

500

1000

1500

2000

2500

3000

3500

4000

4500

0 10 20 30 40 50 60 70 80 90 100

Run Number

Tim

e (

ms

)

Cached, with Optimization

No Cache, with Optimization

Original

Page 8: Performance, Profiling, & Optimization Tools for Enterprise Java Applications

Lazy Fetching and Secondary Lazy Fetching and Secondary Security OptimizationSecurity Optimization

0

10000

20000

30000

40000

50000

60000

70000

80000

90000

0 20 40 60 80 100 120

Run Number

Tim

e (

ms

)

Without Optimization

With Optimization

Page 9: Performance, Profiling, & Optimization Tools for Enterprise Java Applications

Future DirectionsFuture Directions

Security model– Maintenance– Performance

Next generation frameworks– JBoss Seam 2.0– Struts 2

Page 10: Performance, Profiling, & Optimization Tools for Enterprise Java Applications

QuestionsQuestions