y
Beware of misleading benchmarks. Many benchmarks are available to test Java performance, but
most of these are not good predictors of server-side Java performance. Some of these benchmarks are
single-threaded, or run for a very short period of time. Others will stress certain components of the
JVM heavily, while avoiding other functionality that is more typical of real applications. Even the
best benchmarks will exercise the JVM differently than real applications with real data. This doesn’t
mean that benchmarks aren’t useful; however, results from these benchmarks must be interpreted
carefully.
y
5250 OLTP isn’t needed for Java applications, although some Java applications will execute 5250
operations that do require 5250 OLTP. Again, be sure to account for non-Java workloads on the
system that do require 5250 OLTP.
y
Java applications are inherently multi-threaded. Even if the application itself runs in a single thread,
VM functionality like Garbage Collection and asynchronous JIT compilation will run in separate
threads. As a result, Java will tend to benefit from processors which support Simultaneous
Multi-threading (SMT). See Chapter 20 for additional information on SMT. Java applications may
also benefit more from systems with multiple processors than single-threaded traditional applications,
as multiple application threads can be running in parallel.
y
Java tends to require more main storage (memory) than other languages, especially when using the
Classic VM. The 64-bit VMs (both Classic and IBM Technology for Java) will also tend to require
more memory than is needed by 32-bit VMs on other platforms.
y
Along the same lines, Java applications generally benefit more from L3 cache than applications in
other languages. Therefore, Java performance may scale better than CPW ratings would indicate
when moving from a system with no L3 cache to a system that does have L3 cache. Conversely, Java
performance on a system without L3 cache may be worse than the CPW rating suggests. See
Appendix C of this document for information on which systems include L3 cache.
y
DASD (hard disk) requirements typically don’t change much for Java applications compared to
applications written in languages like RPG. The biggest use of DASD is usually database, and
database sizes do not inherently change when running Java.
7.7 Java Performance – Tips and Techniques
Introduction
Tips and techniques for Java fall into several basic categories:
1. i5/OS Specific. These should be checked out first to ensure you are getting all you should be from
your i5/OS Java application.
2. Classic VM Specific. Many i5/OS-specific tips apply only when using the Classic VM and not for
IBM Technology for Java.
3. Java Language Specific. Coding tips that will ordinarily improve any Java application, or especially
improve it on i5/OS.
IBM i 6.1 Performance Capabilities Reference - January/April/October 2008
©
Copyright IBM Corp. 2008
Chapter 7 - Java Performance
135