The Design of Software (CLOSED)

A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.

The "Design of Software" discussion group has been merged with the main Joel on Software discussion group.

The archives will remain online indefinitely.

Java Performance Tuning

I'd consider myself a well versed java programmer, but i'd like to really learn how to performance tune.  Anyone have experience with this?  Any book suggestions, or tools for finding bottlenecks and doing performance analysis? As always, thanks in advance.
Thursday, October 14, 2004
Addison Wesley and O'Reilly are both publishing houses putting out such books. Check out Amazon (or your favorite bookstore).
Li-fan Chen Send private email
Thursday, October 14, 2004
Jack Shirazi's book on Java Performance Tuning (from O'Reilly) is quite good. He's also got a web site ( with lots of performance tips.
Thursday, October 14, 2004
Carfield Yim Send private email
Thursday, October 14, 2004
This site contains tips/articles on Java Performance Tuning.

I guess this will be a good starting point.
Friday, October 15, 2004
For specific tips what are you working with?  Server side? Clinet side?  Othe type of applications I have worked with most of the biggest gains were with database optimization.  Other things are too many objects on the heap and every once in awhile you run into inefficient algorithm.

If I would recommend one thing would be to mesure before you optimize.  Find the problem then fix, otherwise you are wasting your time.
Bill Rushmore Send private email
Friday, October 15, 2004
Effective Java by Joshua Bloch, one of the best Java books I've ever read.
Saturday, October 16, 2004
Saturday, October 16, 2004
Bill, your absolutly right, I guess I should have phrased my question as, "what are some ways to find bottlenecks, tools to do profiling and analysis, and where would I go from there".  I've mostly done J2EE web/database type programming, where performance was almost always an algorithm/database/pattern issue.  BUT, now i'm working on non-database type server applications that are extremely performance intensive, and I'm just not sure where to start.
Saturday, October 16, 2004
There are several Profilers to count the CPU Cycles (eg the one I wrote: ) but it's a much better way to improve your algorithms instead (eg don't use linear arrays, use trees for your data etc...).

Well defined datastructures will help you not only with the performance, they'll also improve your code.

Michael Jakl Send private email
Friday, October 22, 2004
I was living under the impression that you "count CPU cycles" with the profiler in order to find the inefficient algorithms.
Monday, October 25, 2004

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics
Powered by FogBugz