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 ... 

The Performance Interview

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!

Ever had the experience of going for an interview for a job, and found that you are significantly more capable than the interviewer in that skills area. ow about going for an interview only to find out that you are being interviewed for something quite different? Both happened to our author here. Read on ...

Published September 2004, Author Anon

This article is written by an anonymous contributor. It was not Kirk nor me (Jack), in fact I don't even know the anonymous author - it was not delivered directly. But I've heard similar stories before, and it has also happened to me. So I have decided to publish it.

Little Bits of History Repeating Itself.

It's a familiar story, you have a potential client. The client has requirements, a target to meet and you know that you have the skills, you can meet this challenge. You have methodology, experience and the necessary calm and professional means to achieve the object. Although you are a little boat on the surface of the project sea, the wind is at your back billowing out your sails. But, what lurks beneath the surface springs forth and halts you in your tracks! All of a sudden you are engaged in a trench fight - change of scenery. Enter politics. You in a fight without knowing it, nor for what you are fighting for. You want to provide your service to the client. The client wants you to. Or does he? We all have a version of this story, here's mine.

A while ago I was asked to join a new gig at a large international company. My contribution was to work in the performance test/performance tuning team, testing and tuning a custom J2EE application running on BEA Weblogic 8.1. My invitation was based on my former experiences with performance tuning in Weblogic environments and some nice credentials from former clients and gigs.

I arrived in the project location and my manager-to-be informed me that the client would like to interview me before I was to start. Of course I agreed, being interviewed is part of my normal job and part of every gig I do. The interview itself had a pleasant enough atmosphere, it felt just like a little chat. My CV was disseminated and thoroughly examined. Though the process appeared to be routine the questions felt wrong. At least wrong for the job I was being asked to do. Consider the topics of discussion. Did I have experience with bug tracking? Well yes, but mostly at the receiving end. And yes, I did know how to write a usable bug report. Yes, I knew all about priorities, owners, status changes. Finally, we got onto my area of expertise. "Ok, so tell us about this weblogic/epicentric/vignette job that you did?" The rapid fire phase begins. (some dialogue left out)

Me: The performance requirement was to reduce average response time from 20s down to 4s.
Me: Yes, 4s was a requirement.
Me: Yes, we had peaks well beyond the current response time.
Me: Yes, we had professional services guys on the ground with us.
Him: How did you do it?
Me: Well, a few code reviews, some performance monitoring, resource monitoring, resource optimization, database optimization, you know the usual procedures.
Him: What IDE did you use for the code reviews?
Him: How did you tune Vignette?

I answered and then was surprised to hear him say it's not possible to tune Vignette.

Me: It is possible. We tuned Vignette and then pointed the vendor to some potential bottlenecks, documented our suspicions about their implementation and had them provide a fix for us. Worked like a charm!
Him: Slightly unorthodox. Me: Why? It solved the problem for the client and potentially also for other clients. Think win-win.
Him: Ok, so how did the monitoring work?
Me: Well, end-to-end with Topaz, some monitoring with Tivoli as well, but mostly low-level stuff.
Him: Did you use LoadRunner?
Me: Yes, for performance testing, which took place off-site.
Him: Off-site meaning that you do not have expert knowledge of writing LoadRunner scripts?
Me: Yes, correct. (I do not have that skill and never even pretended to, it wasn't on my CV).

It continued ... No, I haven't used LoadRunner for JSP nor for Swing. Yes, I am a tuner and troubleshooter, no, I am not an expert in running LoadRunner. Yes, I have seen LoadRunner before. Yes, I am aware that I need a performance test before I can tune the application. No, I didn't run the LoadRunner scripts. I saw the results, analysed the results and then tuned the application.

Him: Not enough experience.

That was not enough? And what exactly wasn't it enough experience for, writing bug reports or tuning? What does writing bug reports in particular have to do with performance tuning, or most of the other topics?

So the remaining question after this interview (which found me "not qualified for this line of work") is why do we always have to play games without being told the rules beforehand? Why is it that technical prowess is no longer the main selling factor. The key is to be able to position yourself exactly where you want to be. Don't start to fight immediately. Dig in first. If you are only the pawn on the virtual chessboard, make sure that the gambit is obvious as such to all involved parties. I am a pacifist at heart, but the most important book I ever read wasn't some high tech tome on performance, J2EE, Weblogic, Architecture (no, don't get me started on technical architecture...) or similar topics, but a book that has been around for quite some time, written by a Chinese General. "The Art of War". Sun Tsu. Modern business is not about selling your abilities. It is about playing the better game, knowing the difference between tactics and strategy and the value of gambits. If the game has no rules, don't play by the rules of the opponent.

Make the opponent play your game.

And this is where the wheel of time begins turning again. History repeating itself.

Thanks for the interview, you are not qualified.

Postscript from Jack: Whoever you are Anon, I sympathize. I recall a similar interview I had. The position apparently required a Java performance tester and tuner. This resulted in interviewers who didn't know Java, didn't know about tuning, and were all functional testers. After a very disorganized interview where my interviewers spent most of the time busily scribbling down my answers on how to proceed with performance tuning, I spoke with the agent who told me they had decided to look for someone more focused on functional testing. Chalk it down to experience is what I say.

Last Updated: 2022-06-29
Copyright © 2000-2022 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