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 November 26th 2002

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 024 contents | All Javva's articles

Yahoo: Yet another hugely objective output

Have you ever been through a "choose our programming language" (or "choose the really expensive product") exercise? Let me describe how it works in an enterprise site from my experience (having been through a couple of language choices and a couple of expensive product choices). First, someone is mostly in charge of the process, usually partially overlooked by someone else with equal or greater authority. The person in charge (PIC) sets up a small committee which has the job of setting up a decision matrix which is used to objectively choose the language/product amongst the competing alternatives. The decision matrix criteria are chosen according to the needs of the project. The languages/products are evaluated according to the matrix criteria, assigned scores for each criterion, scores are added and the winning language/product chosen based on the best score. This should result in the language/product most appropriate for the project.

Does this look nice and objective? If it does, you need more experience of enterprise sites. The whole process is usually completely rigged in a way that cannot really be criticized. What actually happens is that the PIC and his close advisors first decide on the language/product they want, in private, using completely irrational criteria. Then committee members are chosen who will be mostly sympathetic to this choice. The decision matrix criteria are then chosen to emphasize the advantages of the chosen language/product, and identify problems with the alternatives. As a final fail-safe, if despite all of this the chosen language doesn't win, the decision matrix criteria are weighted so that the chosen language/product can't lose. The result is a language (or product) which appears to have been chosen objectively by the committee. But believe that and you're one of Barnum's customers [the famous phrase "there's a sucker born every minute" is generally, though erroneously, attributed to P.T. Barnum].

When I saw the process by which Yahoo seems to have chosen php as its site language, all of my previous experiences came flooding back. Of course, I'm not for a moment suggesting that the choice for Yahoo was made in the prejudiced fashion I described previously. I'm sure that the Yahoo committee members would have been at least as open to alternatives as you or I would be, and made their choice thoroughly and objectively.

What I found most interesting from that talk was how haphazard the evolution of the Yahoo site seems to have been. This is one of the world's major internet sites any way you look at it. And yet the talk gives me the impression that the site was bolted together bit by bit, held together by spit and glue. Yahoo isn't the fastest of sites, but it certainly has adequate performance, which is pretty impressive considering the number of hits it gets and the amount of work it is doing 24/7. Which makes me think that perhaps they actually got the development model right. Evolve the site, add in the functionalities you need as you need them, rather than plan the whole thing up front. Isn't that part of the extreme programming model?

Diary of a Hutt

October 9. Ah, time. It's nice to have so little pressure. I've decided it's a good time to update my skills. I've started looking through the tools listed at My God, so many that I've never heard of! And I'm supposed to be the company expert on these things. Excellent. I can justify multiple training requests and, by the look of these J2EE monitor thingies, it looks like I'll be able to up my tool budget too. Of course I need to make a compelling case for needing one of these, but that is what salesmen are for. I'll arrange for a demo to be run at the company.

October 10. I could almost hear the ker-ching sound of a cash register as I was telling the vendor about the systems we have running and under development. He was so eager to come and demo their system that he wanted to come today. But of course, I need to set this up. First I need to do some research so that I know how to sell the requirements too. After all, this is my budget we're talking about, I don't want to go into this half cocked. I've set up a demo for next week at a time when HasntGotAClue can attend. But I want to go even further up. If you want your boss to be enthusiastic, get his boss to be enthusiastic. Luckily for me Parsons likes to think he's always up-to-date. So it should only be a matter of sitting next to him at lunch to get him to come along to the demo out of interest. By the way, here's a clue for you if you are ever planning this sort of thing. Demos take time to set up. And there are things that always go wrong. So the meaty part of any demo is much nearer the end of the demo. Don't invite people to the demo until then, otherwise they just bend the salesman's ear, ask some stupid questions, get bored and go before they see anything good.

October 17. Am I good? The whole thing went flawlessly. Actually, I feel sorry for the sales guy. He's probably gone home salivating at his bonus, maybe even already started spending it. Of course he might well get the sale, but it's not as done a deal as he thinks. Of course, he thought he was selling to me, and when I started talking the same talk to my boss, and then the boss's boss came along and loved what he saw, well, it must have been a salesman wet dream. I even chose a test environment with a straightforward bottleneck that would be easy to find, and did the "wow, that would have taken me a week to find with my usual tools" speech. Now I've done the initial groundwork, I need to check out the competition. But at least I'm pretty sure that I have the budget to buy something. J2EE performance monitors, here I come!

October 23. Well there was a whole bunch of these things labelled "J2EE profilers". Nine is too many to evaluate. So I went through the standard elimination process. One was just a development environment tool, another couple were new companies (sorry guys, but new equals risk for enterprise environments), I didn't like the look of a couple of the other's websites. That's better, four left. Easy to do a paper evaluation for four products. Get the bumpf, find the features they all have, eliminate all the common features and see what's left. A couple of them always look much better on paper (they did). So now I have two left, one of which we've already seen demo'ed. So time to get the other demo, then start the auction (never go for the quoted price, there's always a lower price and extra stuff they'll throw in for free).

October 30. It's been a pretty productive month. Adding another skill to your CV is always good. And these things actually look like they'll be helpful. I've yet to sweat the sale though. Let's see, it's the end of October, so I need to get a month's evaluation to kill November, then wait a couple of weeks in December to sweat the sales guys. Hmm, closing around Christmas week will be a pain, but with the I.T. world in it's current doldrums, it's a buyer's market, so I'll leave it until right at the end of the quarter to close. That gives them plenty of time to try to butter me up. I need a new mug, and it's always nice to get a new t-shirt.


Javva The Hutt.

Back to newsletter 024 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