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| Heap dump analysers|

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

Training online: Concurrency, Threading, GC, Advanced Java and more ... 

Javva The Hutt March 31st, 2003

Get rid of your performance problems and memory leaks!

Modern Garbage Collection Tuning
Shows tuning flow chart for GC tuning

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!

Back to newsletter 028 contents | All Javva's articles

Efficient writing

Robert Martin has been writing a series of episodes with a couple of XP developers building various things. I was reading the Once Is Not Enough episode. Quite a nice article, you get introduced to two difficult concepts, network programming and multithreaded race conditions, for the price of one article. Efficient.

Open-source Java tools

I'm always on the lookout for freebie tools. They're so easy to buy, and good for the budget. And it's not like the old days when management decided free meant no support so no way would they put it on "our" machines. Anyone out there remember how desperate the admin guys were to have Perl pre-installed before purchase so that they didn't have to justify installing and using freeware? If it came with the machine you could use it, if it didn't then the struggle was uphill all the way. Now, open-source is accepted, and even preferred in many places. Bryan Dollery has a whirlwind tour of open-source Java tools. Articles like this help keep me up to date on what's available. Useful.

When he mentioned a JUnit extension that looked handy for performance testing, I thought I'd have a look see at what else you can get JUnit compatible that's good for performance testing. There were quite a few:

Only JUnitPerf is really specifically targeted at performance testing, but the others could come in pretty handy if you need to build load test stuff.

Diary of a Hutt

February 5. It's time to build up my team. Apparently, apart from first disciple Boris, I'm to have two more followers. One to join ASAP, the other as per needs or earlier if someone perfect comes along. Soo, its time to brush up on interview technique. I think a few questions on performance are naturally in order. Let's see:

As you can see, I've gradually increased the complexity of the questions to challenge the the candidates.

February 12. It seems that we're in a deepish recession (in IT at least). Our HR department asked me to produce as detailed a technical job specification as I can. They say that if they advertise in the current market they'll get too many CVs to wade through unless we rule lots of people out by requiring lots of very specific technical qualifications or experience. Sympathy, the HR gal handling my requirements told me that they recently got over 2,000 CVs for an open Java post (I think it was Frezian's expansion position, so probably anyone could do it. Frezian hasn't really got a strong grounding in Java, who know what he specified). HR had decided that rather than wade through the CVs, they would simply readvertise the position with more technical requirements. Apparently this had got it down to a more manageable 300 or so CVs. Even so, that's a lot of time spent reading CVs and weeding out candidates. I asked them if I could have a look at these CVs, maybe there was an appropriate candidate. Then I calculated that if I spent ten minutes on each CV, that works out to 50 hours reading CVs. I'd be doing nothing else except essentials for a week! Of course, I'm more efficient than that. I gave them to Boris.

Boris surprised me. He came back the next day with three candidates. I couldn't believe he'd been thoroughly through over 300 CVs in one day, so I had a good look through those three to see if they were appropriate. As entry level candidates they were okay, but not really great picks. Then I realized what Boris had used as a filter. "Boris, I'd like you go through the CVs again and find some more candidates. Oh, and Boris ... this time please, don't restrict your choices exclusively to Russian speakers."

February 19. Boris's second outing through CV land produced a similar crop of candidates to his first, okay but not great candidates. I decided, like HR, that we might as well advertise the specific position rather than start looking at Frezian's generic cast-offs.

February 24. Bill Venners has published an article about How to Interview a Programmer. I liked the idea of asking for a code portfolio, though I'd probably ask for highlights to be identified and explained by the candidate rather than simply look through the portfolio. I also liked Chuck Allison's technique of asking for the best of what they've done:

I've asked what they've done that they're the most proud of. This usually reveals the depth of one's understanding and mastery. It also gets them to turn on the fire hose verbally, and you can sit back and get most of the answers you need.

February 26. That went well. I used Sympathy as much as possible, pleading my inexperience to get her to do as much dirty work as poss. Then I made Boris do almost everything else. My second disciple, Brainshrii, is due to start in a few weeks for a trial period. I couldn't understand half of what he said during his interview, but the half that was intelligible was very good. He taught me a couple of things, and had a fantastic grasp of all aspects of Java performance. HasntGotAClue interviewed him too, since technically he is in HasntGotAClue's department. When he came along to discuss him, HasntGotAClue said "I don't think he has the right mix of customer facing skills". That's management-speak for not presentable enough, or in this case another way of saying "I couldn't understand him." I wanted him and don't like my decisions to be queried by HasntGotAClue, so I pointed out he had exactly the skillset I wanted, that he would be back-office, and then pushed the money button. "You know he is tight with a good sized Indian outsourcing Java specialist. If we ever need to outsource, he would come in very handy as a contact point". Complete bunk of course, but HasntGotAClue hadn't understood anything the guy had said, so how was he to know.


Javva The Hutt.

Back to newsletter 028 contents

Last Updated: 2024-03-29
Copyright © 2000-2024 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