The Artima Developer Community
Sponsored Link

Java Performance
The House That Jack Built
by Jack Shirazi
August 7, 2003
What is the difference between knowing how to use a profiler and knowing how to tune an app? At least $10,000.


Do you know how to use a hammer? A screwdriver? A saw? Almost certainly you do. Does that mean you can build a house? Well maybe, but unless you have previous experience at building houses, I don't think I'd want to live in the one you built. Knowing how to use the tools is not the same skill as being able to build a house.

So why is it that so many people seem to think that knowing how to use a profiling tool means you know how to tune an application? For sure, having a profiler as opposed to not having one makes tuning much easier, just like having a hammer as opposed to not having one makes building a house much easier. But the tool increases your productivity, it doesn't enable the ability. You don't suddenly have the ability to build a house because you know how to use a hammer; you don't suddenly have the ability to tune an application because you know how to use a profiler.

There's a number of different types of consulting I do for customers. Mentoring is one. Architecture reviews are another. A third is performance management, where I get involved early on in a project and ensure that performance goals are met over the project lifetime. But one type of consulting is quite different: it's called fire-fighting. It's when a project is in "panic" mode, and deperately needs fixing in a short time. Inadequate performance is only one of the possible reasons for a project to get into "panic" mode, but that's the panic mode I get called in to handle. One of my first questions is "What tools do you have?", so that I know what to bring with me. I never have to bring a profiler. Every site has one. They also know how to use it. At least one of the developers will have been on the profiler vendor's training course. But they still got into "performance panic" mode. It's not the developer's fault. It's down to the difference between knowing how to use a profiler and knowing how to performance tune. It's just another skill, nothing special about it. You can acquire performance tuning skills through training, just like you can acquire most other skills through training.

So please, try to remember that if you want to build a house it's not enough to know how to use a hammer, you need to know house building skills; if you want to performance tune an app it's not enough to know how to use a profiler, you need to know performance tuning skills. And yes, I do know I'm ranting a bit. It's because I can see yet another project that has decided all they need to know about is profilers and everything will be okay. And I know that in a couple of years, when the project is due to deploy, they will be having a fire-fight. I don't rejoice that I'll have more work in a couple of years. I get annoyed because our industry refuses to improve it's practices when improvement is possible.

Talk Back!

Have an opinion? Readers have already posted 1 comment about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Jack Shirazi adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Jack Shirazi is the author of O'Reilly's "Java Performance Tuning" and director of the popular website, the world's premier site for Java performance information. Jack writes articles for many magazines, usually about Java performance related matters. He also oversees the output at, publishing around 1 000 performance tips a year as well as many articles about performance tools, discussion groups, and much more. In his earlier life Jack also published work on protein structure prediction and black hole thermodynamics, and contributed to some Perl5 core modules "back when he had more time".

This weblog entry is Copyright © 2003 Jack Shirazi. All rights reserved.

Sponsored Links


Copyright © 1996-2018 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use