August 05, 2005

Java Performance Tuning

One of my tasks as my job is to monitor, evaluate, and tune the performance of our large, statewide, system. This has been a tricky endeavour, as I have found that I need to balance usability, with the performance. We have converted some of our framework, such as the XML serializer we are using, to another, more efficient product (JOX. I have also implemented presized ArrayLists for our data caching that we do at startup and implemented the Flyweight pattern to the storage. This improved server startup time significantly, and decreased the memory footprint by more than 75%. (Previous post about the flyweight pattern).

Today I stumbled upon an excellent resource that has general knowledge comparisons of java object types that can provide the same functionality, but will perform differently under different circumstances. I'll have to study this list in detail. I have already found the tip that suggests changing ArrayLists to TreeSets if you need to do a .contains, since the ArrayList uses a linear search, and the TreeSet is a Hash lookup.

The article can be found here.

Posted by doug at August 5, 2005 03:54 PM | TrackBack
Comments

technically a TreeSet does a binary lookup on a tree structure, a HashSet would do a hash lookup

Posted by: Jason at August 5, 2005 08:46 PM
Post a comment









Remember personal info?