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

News May 2006

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 066 contents

As usual, my attendence at JavaOne was virtual. One of these days I'll retire, and then I'll have the time to go. On my current schedule it will be JavaOne 2035.

Despite that I had the delightful pleasure of attending a presentation by Greg Bollella on real-time Java (he led the Real-Time for Java expert group under the JCP). As part of his presentation he showed highights from his JavaOne presentation in the closing keynote. Very entertaining, and I got to see what people had been going on about with the slot car races.

But significantly more impressive for me was the animation which continued without pauses even while other threads were grinding to a halt from a huge volume of garbage being created, and having that garbage collected. Deterministic control over critical application thread processing without having to worry about interfering effects from other non-critical threads or garbage collection. This is significant stuff.

Real-time Java has overhead. You are trading throughput for that tight deterministic control. 15% reduced throughput if you take an existing Java app and run it on the RTSJ JVM. And throughput handling, expecially at peak flow, is critical for the enterprise systems I typically deal with. So my inital thought was that real-time would have limited applicability in the domains I tend to work in. But Greg's comment that currently many Java systems are run at low utilization in order to have spare capacity available for handling peaks, whereas with real-time the utilization could be increased significantly because peaks can be handled deterministically, hits the enterprise space dead centre. I'm sold.

One thing I thought curious was that the games developers have been crying out for this type of capability in Java for years, but now that its here Sun seem to have no plans to port the RTSJ JVM to the desktop. As these games are often deployed with a JVM, this seems to me like a reasonable target to go for. Check out the potential market Sun, I'd say that's an opportunity worth evaluating.

A note from this newsletter's sponsor

Wily Technology delivers what you need: Availability, Performance and Control
The most critical web applications in the world are managed by
software from Wily, the leader in enterprise application management

This month's selected articles include some of the most fascinating I've seen in quite a while. Richard Friedman shows why parallelizing an application is much less important than optimizing it; Ethan Nicholas gives a crystal clear explanation of Reference types; Don't miss Brian Goetz's masterclass on nonblocking algorithms; and definitely read the interview of Scott Oaks on profiling, which gives us our first extracted quote of 2006:

"You always hope that you'll load an application into a profiler, it will show that there's a hotspot in the code accounting for 60% of the time, and you can just go fix that and call it a day ... But in reality, bottlenecks are subtle. Leaf methods in a profile will all show very little CPU usage; root methods will all be too far removed from the source of the bottleneck. So you're left to walk up and down the stack and figure out where to look. I'm often asked how to do this well, and it's not really something I can explain. I think with practice you just develop an intuition for it."

Or, of course, we can train you to develop the skill. Now read on for our news, links to those selected articles, Kirk's roundup of discussions and his Sun Tech days presentation in South Africa; also we bring you a tool report this month on Compuware's Vantage Analyzer and, of course, we have our many new extracted performance tips.


Java performance tuning related news.

A note from this newsletter's sponsor

Symantec i3 for J2EE helps you optimize application performance through
out the application life cycle. Its unique adaptive instrumentation
auto-adapts to application changes. Download an eBook on J2EE performance

Real-time Java further reading


Java performance tuning related tools.

A note from this newsletter's sponsor

Fireproof your Java code with JProbe® from Quest Software.
Release applications with confidence, knowing they?ve been fully tested.
Stop Java code flare-ups before they start. Learn more - watch the demo.


Jack Shirazi

Back to newsletter 066 contents

Last Updated: 2023-08-28
Copyright © 2000-2023 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