Ionut Balosin is a software architect working for Raiffeisen Bank International in Vienna. He is also an independent technical trainer, security champion, and blogger, and regularly speaks at major software development conferences and meetups around the world, delivering presentations, training sessions, and workshops.
He is also known as a performance guy particularly interested in Compilers. His previous work on performance benchmarking raised internal interest across a few teams from big companies like Twitter, OracleLabs, Azul, and IBM.
You can find more details about Ionut, his training catalog, his talks, and his articles on ionutbalosin.com.
Florin Blanaru is a tech person with experience in managed runtimes (the JVM), heterogeneous hardware accelerators, and e-commerce platforms.
His main technical interests are compilers, managed runtimes, and high-performance heterogeneous execution. I specialize in Java and the JVM (Hotspot), Compilers, Parallel Computing, GPU Programming, and Performance Analysis and Tuning.
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)
– Garbage Collectors (SerialGC, ParallelGC, G1GC, ZGC, ShenandoahGC, EpsilonGC)
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, GraalVM EE
– JDK 11, JDK 17
– aarch64, x64