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

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

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

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

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

yDASD (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

Page 135
Image 135
Intel 170 Servers, AS/400 RISC Server, 7xx Servers manual Java Performance Tips and Techniques, Introduction