Performance tuning

You can improve the performance of applications by tuning the Eclipse OpenJ9 VM, enabling hardware features, or by using specific APIs in your application code.

OpenJ9 is configured to start with a set of default options that provide the optimal runtime environment for Java™ applications with typical workloads. However, if your application is atypical, you can improve performance by tuning the VM. Click the links to learn more about the following options:
Choosing a garbage collection policy
OpenJ9 includes several garbage collection policies. To learn more about these policies and the types of application workload that can benefit from them, see Garbage collection policies in the OpenJ9 user documentation.
Improving startup times with class data sharing
You can share class data between running VMs, which can reduce the startup time for a VM after the cache has been created. For more information, see Introduction to class data sharing in the OpenJ9 user documentation.
Choosing large pages
If your application allocates a large amount of memory and frequently accesses that memory, you might want to enable large page support on your system.
You can also improve performance by enabling hardware features or by using specific APIs in your application code. Click the links to learn more about the following options:
Native data
If your Java application manipulates native data, consider writing your application to take advantage of methods in the Data Access Accelerator API. For more information, see Native data operations in the OpenJ9 user documentation.
Exploiting Remote Direct Memory Access (RDMA)
High performance network infrastructure that supports Remote Direct Memory Access (RDMA) is designed to speed up communications between applications. OpenJ9 supports the use of the SMC-R protocol solution to enable TCP socket applications to transparently use RDMA. This feature enables direct, high-speed, low-latency, memory-to-memory (peer-to-peer) communications. For more information about SMC-R, including any prerequisites and configuration settings, see Using Shared Memory Communications in the z/OS® Communications Server: IP Configuration Guide

Debugging performance problems

If you are having problems with performance, see: