Tuning a JVM is a difficult task, especially because there are many tuning flags to choose from, and the performance depends on the environment, workload, etc. Hand tuning is also a double-edged sword, as adjusting in the context of a specific environment for a specific use case (or a set of use cases) might become less optimal or degrade the other parts. Based on this rationale, it is necessary to understand what might be “the most suitable” JVM and the JDK version to bring the most benefits without spending too much time playing with different JVM tuning flags, etc. This session is based on research work conducted by Ionut Balosin and Florin Blanaru trying to create representative performance benchmarks on specific code patterns with several combinations of JDK versions and JVM providers focused on: – Just In Time (JIT) Compilers (C2 JIT HotSpot, Graal JIT) The goal is to identify (by comparison) the strengths and the weaknesses of each JVM and what might be the most optimal mix in terms of the JDK version and JVM distribution that could be used (in real business applications, as well) to improve the performance. All the benchmarks from this research rely on the below stack: – Java Microbenchmark Harness (JMH) – HotSpot OpenJDK – GraalVM CE, Oracle GraalVM – JDK 17 – aarch64, x64
Get notified about new features and conference additions.