Channels ▼

Eric Bruno

Dr. Dobb's Bloggers

Inside AMD Java Labs

January 22, 2009

In December, I attended a NY Java SIG meeting  (, which is run by Frank Greco. The topic was AMD's Java labs, and all the work they're doing with Sun and other vendors to improve Java's performance on servers with AMD processors. The speaker was AMD's Ben Pollan, who now resides in Texas but is a native New Yorker.

Ben discussed the optimizations and tools that AMD has contributed to Java over the years. These include:
-Hashmap performance improvements
-Class size reduction for large class objects
-Automatic field reordering and deletion
-Optimizations to help when running multiple JVMs on one server, such as node interleaved memory
-JVMTI improvements to provide more robust profiling data and tools support

Inside AMD processors, there have been design considerations specifically for Java, such as:
-Instruction selection and conversion optimizations
-Cache improvements specifically to help java.util.* collection classes
-Instruction-based sampling, where the processor associates events with instructions, and helps the JIT reoptimize compiled code.

Other areas of improvement, inside and outside of the JVM, include:
-Advanced synchronization facility, with lightweight locking
-Compressed references (using less than 64bits for object references to improve performance)
-Enhancements for NUMA-based servers, such as the addition of the -XX:+UseNUMA command-line flag

Ben discussed AMD's work with a tool called CodeSleuth. CodeSleuth is an open source Eclipse plug-in that brings the functionality of AMD CodeAnalyst to Java code. It collects and analyzes compiled Java code directly from within  Eclipse. It points out the locations of performance issues in your Java source so you can modify the code and improve  performance.

AMD is also a big contributor to OpenJDK, in particular adding code to JDK 7 to automatically improve Java's performance on multi-core machines. For more information on the work AMD is doing in the Java space, go to:

To download and try CodeSleuth with your Java applications, go to:

Happy coding!

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.