Author Archives: Tom Deneau
Oracle Java and AllocatePrefetchStyle for “Bulldozer” Processors
This blog describes an option, -XX:AllocatePrefetchStyle=0, that may help performance when using a Java 6 (or older) Oracle JVM and running on an AMD Bulldozer core processor. In our labs, this option was observed to give performance lift typically between … Continue reading
A new NUMA option for Windows® on the Hotspot JVM
Here we discuss a new option that AMD contributed to the Hotspot JVM that helps improve performance on some applications on NUMA systems running Windows® OS. On some applications and heap configurations we saw up to a 2.5X performance improvement. … Continue reading
Java Performance when Debugging is Enabled
Earlier this year AMD, working with the Hotspot JVM team, submitted a change to the OpenJDK to help the performance of Java applications which run with debugging enabled, in particular ones that also throw and catch exceptions as part of their flow control. We’ve … Continue reading
Java Generics Performance Puzzler Part 2
In a previous blog, we looked at a microbenchmark where we were pulling an item from a collections class like an ArrayList and eventually putting it in another collection. And we saw that there could be a significant performance difference … Continue reading
A Java Generics Performance Puzzler
In this entry, we’ll go down that well-worn path of looking at some microbenchmark results and trying to explain them. This microbenchmark created an ArrayList such that if one went thru the ArrayList in order, the entries were randomly distributed … Continue reading
Using Apache JMeter in non-GUI mode
Many of us are familiar with Apache’s JMeter tool, an open source tool which can help load test and measure the performance of web applications. JMeter has an excellent GUI mode and this is the mode that is presented if you … Continue reading
Huge Pages and NUMA on Windows® Operating Systems
Many Java applications, especially those using large heaps, can benefit from what the operating systems call large or huge pages. In the x86 architecture, these are pages that are larger than the default 4K byte pages, usually 2MB. See … Continue reading
Huge Pages and NUMA issues on Linux®
Many Java applications, especially those using large heaps, can benefit from what the operating systems call large or huge pages. In the x86 architecture, these are pages that are larger than the default 4K byte pages, usually 2MB. See the … Continue reading
Runtime configuration parameters for bootclasspath library routines
Assume for some strange reason that you want to modify one of the base Java library routines, for example, java.util.HashMap. Since these classes are part of booting up Java, you’ll need to add your new jars to the bootclasspath, rather … Continue reading
New Developer Central article on Escape Analysis in Java
In AMD JavaLabs one of our activities is to analyze the performance of Java applications or benchmarks and feed performance recommendations to our JVM vendor partners like Sun, IBM, and BEA. While doing this we often write our own small … Continue reading




