Apache JMeter is an open source tool that can be used to measure the performance of Java applications. The JMeter can be used to test a wide range of Java applications like web, EJB, web services etc. I am not going to elaborate more on this, and you can get more information about this from the Apache JMeter website at http://jakarta.apache.org/jmeter/
The JMeter can also be extended, to create...
on Dec 9, 2008
I am working for a customer, doing some performance review for their java application and tuning glassfish as well.
They use linux 64 bits (kernel 2.6.18 SMP), glassfish v2 u2 and JDK 5 u12. At some point I needed to generate a heap dump to better understand the object allocation and if possible some hints as to where to look for optimization for the application.
Now the big problem, I could not...
on Oct 1, 2008
There is a wiki site at Sun, about HotSpot Internals, with valuable information to people who wants to better understand HotSpot but don't have the proper time to dedicate to such good reading of HotSpot source code.
As an example, there are tips about how to optimize Java code to the best and how HostSpot sees it
on Aug 20, 2008
You can see my presentation about Tools and Tips to Diagnose Performance Issues on-line or download it.
It was great, because the room was almost full, people keep taking pictures, looks like the topic was interesting.
Some people asked questions at the end, where I want to answer here, to a broad audience.
All of them are hard questions. As there is no recipe to answer them.
Q.1) What is...
on Jun 25, 2008
week I am heading up to the northern hemisphere to join a
crowd of Java professionals and enthusiasts to participate to Jazoon
Tools and Tips to Diagnose
Performance Issues is the session I am going to
share tips and tools to help diagnose performance issues on Java
applications. Some of them are heap and thread dump analysys,
on Jun 13, 2008
I was working on a kind of Outlook entirely based on the web and written 100% in Java. I was part of a team responsible for maintaining that application for thousands of users and performance was a critical piece. Actually, still is a critical piece because the application still exists and it is there for almost ten years.
I joined the team after the application has been released and being used...
on Apr 28, 2008
If I ask someone else what a Jazooner is, probably they could think it is a character from Klingon, right ?
But for the people at Zurich organizing such a java international conference, it is a place for learning, sharing, talking about Java and meet good professionals. I am proud to be part of the show.
My session Tools and Tips to Diagnose Performance Issues, is scheduled at June, 24 at 5:30pm...
on Apr 12, 2008
As a performance engineer, I'm often asked which X is faster (for a variety of X). The answer to that question always depends on your perspective.
Today, I'll talk about the answer in terms of hardware and application servers.
People quite often measure the performace of their appserver on, say, their laptop and a 6-core, 24-thread Sun Fire T1000
and are surprised that the cheaper laptop can...
on Apr 1, 2008
Recently, I've been reading an article entitled
The Fallacy of Premature Optimization by Randall Hyde. I urge everyone to go read the full article, but I can't help
summarizing some of it here -- it meshes so well with some of my conversations with developers
over the past few years.
Most people can quote the line "Premature optimization is the root of all evil" (which was
popularized by Donald...
on Feb 25, 2008
I've written several times before about how you have to measure performance to understand how you're doing -- and so here's my favorite performance stat of the day: New York 17, New England 14.
on Feb 3, 2008
I spent last week working with a customer in Phoenix (only a few weeks before the Giants go there to beat the Patriots), and one of the things we wanted to test was how their application would work with the new in-memory replication feature of the appserver. They brought along one of their apps, we installed it and used their jmeter test, and quickly verified that the in-memory session...
on Jan 22, 2008
One connection good.
Then two connections better.
Or maybe not so.
on Dec 17, 2007
When I reported our recent excellent SPECjAppServer 2004 scores, one glassfish user responded:
I sure wish you guys were able to come up with a thorough write upabout the SPEC Benchmark architecture, and the techniques you guysused to get the numbers you get and, more importantly, how thosetechniques might apply to every day applications we run in the wild.
While we do have a full performance-...
on Dec 3, 2007
Last week, Sun published a new SPECjAppServer 2004 benchmark score: 8439.36 JOPS@Standard . [I'd have written about it sooner, but it was published late Wednesday, and I had to go home and bake a lot of pies.] This is a "big" number, and frankly, it's the one thing that's been missing in our repertoire of submissions. We'd previously shown leading performance on a single chip, but...
on Nov 26, 2007
Yesterday JavaWorld.com published a new article titled "Multicore processing for client-side Java applications". You're welcome to take a look and let me know what you think. Here's a summary of the article:
It's a well-known fact that hardware companies are abandoning the race for single-CPU speed and instead are focusing on multicore processors. Despite the fact that many algorithms can be...
on Sep 26, 2007
I continue my studies about web applications optimization focusing in the browser side. My previous blog was about YSlow, the excellent add on of Firebug. Now, I focused more to understand how browsers cache works and how to trace problems caused by its storage strategies.
The browser side was a great concern few years ago, when the power of the client machines and the available broadband were...
on Aug 15, 2007
A good way to reduce the number of Http Connections required to
load a web page is to store images and other resources in the browser cache. It is very
well presented in this other blog. The problem is to find a correct
configuration of the names and values used by different browsers to
optimize the cache usage. To help us to identify what is going on during
the communication between browsers and...
on Aug 8, 2007
Today, Sun officially announced SPECjAppServer 2004 scores on our Sun Java
Application Server 9.1, which (as you no doubt know) is the productized
version of the open-source Glassfish V2 project. We've previously submitted
results for SJSAS 9.0 (aka Glassfish V1), which at the time we were quite
proud of: they were the only SPECjAppServer scores based on an open-source
application server, and...
on Jul 10, 2007
One of those lesser-known features of Java is that it contains two
different bytecodes for switch statements: a generic switch statement,
and an (allegedly more optimal) table-driven switch statement. The
compiler will automatically generate one or the other of these
statements depending on the values in the switch statement: the
table-driven statement is used when the switch values are close to...
on Jul 9, 2007
Almost every thread pool implementation takes great pains to make sure
that it can dynamically resize the number of threads it utilizes: you
specify the mininum number of threads you want, the maximum number, and
the thread pool in its wisdom will automatically configure itself to
have the optimal number of threads for your workload. At least, that's
But what about in practice? I'd...
on Jun 7, 2007