Java Performance Tuning

Java(TM) - see bottom of page

|home |services |training |newsletter |tuning tips |tool reports |articles |resources |about us |site map |contact us |
Tools: | GC log analysers| Multi-tenancy tools| Books| SizeOf| Thread analysers|

Our valued sponsors who help make this site possible
JProfiler: Get rid of your performance problems and memory leaks! 

Training online: Threading Essentials course 

Newsletter no. 23, October 30th, 2002

Get rid of your performance problems and memory leaks!

Java Performance Training Courses
COURSES AVAILABLE NOW. We can provide training courses to handle all your Java performance needs

Java Performance Tuning, 2nd ed
The classic and most comprehensive book on tuning Java

Java Performance Tuning Newsletter
Your source of Java performance news. Subscribe now!
Enter email:

Training online
Threading Essentials course

Get rid of your performance problems and memory leaks! has now been available for two years. Even when the site opened, we immediately provided the most comprehensive set of information related to Java performance available anywhere on the web. Then, we opened with over five hundred performance tips at the end of October 2000. Now we're coming up to the three thousand tips mark. Tips cover everything from specification to deployment, design to profiling, volatile to EJB, J2ME to J2EE, JNI, graphics, audio, and much, much more.

Apart from the tips we also provide the most comprehensive list of Java performance resources on the web. The number of people coming to the site has steadily increased month on month, and the rate of increase seems to be growing. Almost every query for performance information in Java discussion groups and on Usenet includes a reference to All of that and we give you the relevant Java performance news too.

This two year-old toddler, born after the excesses of the dot-bomb were unravelling, is growing fast and healthily. We hope to provide comprehensive Java performance information for many years to come. Happy Birthday

A note from this newsletter's sponsor

Measure, analyze and maximize J2EE application performance
during load testing with Sitraka PerformaSure. Read the
Aberdeen white paper "Honing In on J2EE Performance Assurance"

This month we continue to find many articles discussing features available from the NIO library. There are also many articles covering various aspects of J2EE (JDBC, EJB, Scaling, Clustering, Sessions and Servlets), as well as articles on ThreadLocal, Swing, animation, profiling, optimizing and OS-level monitoring.

Martin Fowler's article "Yet Another Optimization Article" is worth singling out. Martin often comes up with real gem quotes, and this time is no exception. Here are a couple of those gems:

If you make an optimization and don?t measure to confirm the performance increase, all you know for certain is that you?ve made your code harder to read.
After upgrading your compiler or VM, the optimization you did six months ago could be your bottleneck today.

Lovely .sig material. Kirk and Javva are also here with their excellent contributions; we have news, new tips categories, and new tool reports. Welcome, dive in and enjoy.

A note from this newsletter's sponsor

Get a free download of GemStone Facets 2.0 and see how this
patented technology supports JCA 1.0 to seamlessly integrate
with J2EE application servers to enhance performance.

New Tips Categories

Tool Reports


Java performance tuning related news.

A note from this newsletter's sponsor

Precise Software revolutionizes J2EE Application Performance
Management with automatic problem detection & correction. Read
our white paper on how to instantly isolate J2EE bottlenecks.



Recent Articles

Older Articles

Jack Shirazi

Kirk's roundup

My apologies, Kirk's roundup is unexpectedly unavailable this month.

Kirk Pepperdine.

Javva The Hutt

I started out in a Unix environment. For sure it took a while to get used to the tools and utilities, and understand what I was doing. But by the time I started touching PCs, I was comfortable in Unix. MS-DOS seemed brain dead in comparison. Windows has always been like a straight-jacket. In Unix I can fly my own plane anywhere; in Windows I can get on at stop A and get off at stop B, but if I want to go anywhere else I need to build an aeroplane to do it.

My brother-in-law started in MS-DOS. Windows, every version, was sooo much better. More and more things that you could do. He's had to work in Unix environments every now and then, and always moans "why do they have to make it so complicated?". He's right of course. I'm still more comfortable in Unix, and if I need to tweak a system to do things just right, then Unix is way way better for me. But Windows is much more user-friendly. For 90% of what most computer users want to do, Windows is easier to operate. (Hence the emphasis on nice Linux front-ends).

What is this little ramble about? Well I was reading Paul Prescod's rant about keeping web services simple, and came across this line:

it's debatable whether scalable, robust, fault-tolerant Web service construction can be made as easy as clicking buttons on a dialog box.

He was talking about Visual Studio.NET generating web services, but the issue is wider. It's been my experience that performance and scalability lie in the region where you cannot provide a simple interface that will optimize the system. Whether talking about Web Services, JVMs, or Windows/Unix, you need to be able to get under the surface, see what's happening, tweak things that the system designers didn't think about, and generally play process-God if you want to get the maximum out of the system. Prescod goes on to say

Networked applications must intrinsically deal with many issues that don't affect local programs: latency, race conditions, topology changes, network outages, obsolete client and server software, denial of service attacks, and so forth. The dialog boxes don't offer any strategies to deal with these problems. When today's Web services are deployed in the real world, I expect we'll find that ignoring these issues will have serious consequences for the reliability of our services.

I suspect we are going to see a lot of non-scalable web services for a long time.

Diary of a Hutt

September 18. It's always so difficult to throw yourself back into work after a long relaxing holiday. So many meetings, smail piled up, cluttered up inbox, etc. I believe it will take the whole week before I'm even close to be able to pick up where I left off. Weevil didn't seem happy to hear how much has piled up for me. For some reason, he seems to be desperate to hand off my project back to me. Actually I sneaked a look. He's way behind schedule, and I'm enjoying see him stew. HasntGotAClue fully understands my backed-up workload, and is comfortable with Weevil carrying on this week. I've scheduled a progress report from Weevil for tomorrow. Made sure HasntGotAClue was free, sent the memo to Weevil, then added HasntGotAClue to the attendee list.

September 19. Weevil was taken sick, just after HasntGotAClue joined the meeting. Shame really. Weevil had just started berating me for the ridiculous time schedule I'd set up for the project, and was just reaching full-bodied language. Then HasntGotAClue came into the room, and I was just telling him how he hadn't missed anything and that Weevil was just about to start his report. Weevil seemed to turn red then white, and all but collapsed. Said he couldn't breathe properly. Poor guy. Overworked if you ask me.

September 25. Well Weevil and I have agreed that the schedule was a little too optimistic. Actually he was desperate to agree anything as long as I would take the project off his hands. So our joint recommendation to HasntGotAClue is that the project implementaion time should be tripled. Weevil also agreed to state essentially that most of his work needed to be written-off. Incomplete due to timing pressures. Actually I can use a good proportion of it, but I couldn't miss the opportunity to put the screw in. HasntGotAClue wasn't too happy, but it is not a unique situation having to convert a project to a "prototype" because the requirements were incorrectly assessed. He demoted Weevil though. Decided that I needed an alternative liaison while Weevil went for some training to get him "up to spec". If I was Weevil, I'd be polishing up that CV again. How many departments can he be under spec for?

October 2. So now, I've got essentially to the end of the year to implement my performance management integration with QA. With Weevil's stuff it shouldn't take more than a month maximum. I think I'll be coming in a little ahead of schedule. Not too much, of course, I don't want my projections to be off, just ahead enough to look good. Always start performance tuning by giving your own performance a little tuning. I think I'll make that my motto! And I've done the classic tune: set expectations correctly and you can always beat them.


Javva The Hutt.

WebSphere performance tuning (Page last updated August 2002, Added 2002-10-30, Author Gennaro (Jerry) Cuomo Srini Rangaswamy, Publisher IBM). Tips:
WebSphere HTTP session best practices (Page last updated August 2002, Added 2002-10-30, Author David Draeger, Publisher IBM). Tips:
Optimization (Page last updated September 2002, Added 2002-10-30, Author Martin Fowler, Publisher Tips:
Web server monitoring (Page last updated September 2002, Added 2002-10-30, Author, Publisher Tips:
Performance tuning with OptimizeIt (Page last updated March 2002, Added 2002-10-30, Author Jay Campan & Eric Muller, Publisher Borland). Tips:
ThreadLocal (Page last updated October 2001, Added 2002-10-30, Author Brian Goetz, Publisher IBM). Tips:
Session persistence performance (Page last updated October 2002, Added 2002-10-30, Author Saurabh Dixit & Srikant Subramaniam, Publisher WeblogicDevelopersJournal). Tips:
Sun community chat on NIO (Page last updated September 2002, Added 2002-10-30, Author Edward Ort, Publisher Sun). Tips:,,12082_1473151,00.html
FileChannel objects background information (Page last updated September 2002, Added 2002-10-30, Author Richard Baldwin, Publisher Earthweb). Tips:
Clustering J2EE (Page last updated October 2002, Added 2002-10-30, Authors Ashok Banerjee, Ganesh Kondal & Sunil Kunisetty, Publisher JavaDevelopersJournal). Tips:
JDBC drivers (Page last updated September 2002, Added 2002-10-30, Author Heinz Kabutz, Publisher DevX). Tips:
Scaling J2EE (Page last updated October 2002, Added 2002-10-30, Author Mikhail Skorik, Publisher JavaDevelopersJournal). Tips:
File Locking (Page last updated September 2002, Added 2002-10-30, Author John Zukowski, Publisher Sun). Tips:
NIO (Page last updated October 2002, Added 2002-10-30, Author Ron Hitchens, Publisher OnJava). Tips:
The Timer service (Page last updated October 2002, Added 2002-10-30, Author Richard Monson-Haefel, Publisher TheServerSide). Tips:
JDBC tips (Page last updated September 2002, Added 2002-10-30, Author William Crawford, Publisher Oracle). Tips:
Smooth animation/sprite engine requirements (Page last updated September 2002, Added 2002-10-30, Author Chris Preimesberger, Publisher DevX). Tips:
Swing multi-threading (Page last updated September 2002, Added 2002-10-30, Author Guruprasad H.N., Publisher IBM). Tips:
Row level locking (Page last updated September 2002, Added 2002-10-30, Author Nicholas Whitehead, Publisher ITtoolbox). Tips:{98614A3F-B3EA-4167-BA4E-3C774E48CFE1}
Chapter 3, "Popular Unix Performance-Monitoring Tools for Linux" from "Linux Performance Tuning and Capacity Planning" (Page last updated October 2002, Added 2002-10-30, Author Jason Fink, Publisher InformIT). Tips:

Last Updated: 2018-11-28
Copyright © 2000-2018 All Rights Reserved.
All trademarks and registered trademarks appearing on are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries. is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
RSS Feed:
Trouble with this page? Please contact us