Java Levels; 32-Bit Versus 64-Bit Java - IBM Power7 Optimization And Tuning Manual

Table of Contents

Advertisement

7.1 Java levels

You should use Java 6 SR7 or later for POWER7 Systems for two primary reasons. First,
64 KB pages are used for JVM text, data, and stack memory segments and the Java heap by
default on systems where 64 KB pages are available. Second, the JIT compiler in Java 6 SR7
and later takes advantage of POWER7 specific hardware features for performance. As a
result, Java 6 SR7 or later perform better on POWER7 than older releases of the JVM.
Although 64 KB pages are available since AIX 5L V5.3 and POWER5+ systems, the default
page size on AIX is still 4 KB. JVM releases before Java 6 SR7 use the default memory pages
that are provided by AIX unless an AIX environment variable is set to override it. (For more
information, see "Tuning to capitalize on hardware performance features" on page 12.) The
Java heap is mapped to use the default page size unless the appropriate option is used to
override it. (For more information, see 7.3.1, "Medium and large pages for Java heap and
code cache" on page 127.) In reality, performance-savvy users override the default page size
anyway with 64 KB pages to obtain most of the performance benefits from using larger
memory pages on Power Systems. Java6 SR7 and later use 64 KB pages almost everywhere
64 KB pages are available and applicable. With Java 6 SR7 or later, no overriding option is
necessary, and no AIX environment variable must be set.
The JIT compiler automatically detects on what platform it is running and generates binary
code most suitable to, and performing best on, on that platform. Java 6 SR7 and later is able
to recognize POWER7 and best use its hardware features. For example, POWER7 supports
prefetch instructions for transient data, which is needed, but this data must be evacuated from
the CPU caches with priority, which results in more efficient usage of CPU caches and leads
to better performance if the workload had identifiable transient data. Many Java objects are
inherently transient. Java 6 SR7 and later takes advantage of these prefetch instructions if the
appropriate option is specified, as indicated in 7.3.3, "Prefetching" on page 128.
There is a newer Java release that is only available for Power when bundled with WebSphere
Application Server. WebSphere Application Server V8 contains Java 6 with a later, improved
V2.6 J9 virtual machine (VM). This VM is preferred over Java 6 with the older V2.4 J9 VM
because of the performance improvements it contains.
The newest release of Java, Java 7, was generally available at the end of September 2011. It
is available as a stand-alone release (not only when bundled with WebSphere Application
Server). As with the updated Java 6 in WebSphere Application Server V8, Java7 contains
significant improvements in the JDK as compared to the original Java 6. Java 7 is the
preferred version of Java to use on POWER7.

7.2 32-bit versus 64-bit Java

64-bit applications that do not require large amounts of memory typically run slower than
32-bit applications. This situation occurs because of the larger data types, like 64-bit pointers
instead of 32-bit pointers, which increase the demand on memory throughput.
The exception to this situation is when the processor architecture has more processor
registers in 64-bit mode than in 32-bit mode and 32-bit application performance is negatively
impacted by this configuration. Because of few registers, the demand on memory throughput
can be higher in 32-bit mode than in 64-bit mode. In such a situation, running an application in
64-bit mode is required to achieve best performance.
126
POWER7 and POWER7+ Optimization and Tuning Guide

Advertisement

Table of Contents
loading

This manual is also suitable for:

Power7+

Table of Contents