Java Performance

Java Performance and System Architecture

In almost every large-scale Java project performance issues will rear their ugly heads - most likely close to the deadline. A Java Performance workshop (based on the book by Jack Shirazi(bookmark)) tries to prevent this situation from happening or at least shows what has to be done. I've held this workshop when our big enterprise portal performed like a dog. After fixing several architectural problems it turned out that the developers were handling object creation a bit too generously (no pooling, little caching). A less obvious perfromance problem are exceptions which cost you an arm and a leg if called frequently. Interesting as well is the infamous "double checked locking" problems that does NOT fix a performance problem with singletons. Of course, performance measuring tools (e.g. Jprobe) or the built in features of the Java VM are discussed too. Garbage collection and how it works as well (see the wonderful article by Paul Wilson). Finally collection class problems with threading are explained.

Performance issues are never independent of system architecture and therefor a number of classic problems are shown in the context of the system architecture behind.

This workshop covers:

  • memory: garbage collection and its consequences

  • object creation: caching and pooling

  • exceptions: not in critical pathes

  • tools and procedures to test and ensure performance