A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers better runtime performance?

Day 1 /  / Track 4  /  EN

The talk reveals how traditional Just In Time Compiler (e.g. JIT C2) from HotSpot/OpenJDK internally manages runtime optimizations for hot methods in comparison to the new, state of the art, GraalVM JIT Compiler on the same source code, emphasizing the internals and strategies used by each Compiler to achieve better performance in most common situations (or code patterns). For each optimization, there is Java source code and the corresponding generated assembly code to prove what happens under the hood. Each test is covered by a dedicated benchmark (JMH), timings and conclusions.

Few topics of the agenda:

  • [Parcial] Scalar replacement;
  • Virtual calls;
  • Vectorization and Loop optimizations (few cases).

The tools used during my research study are JITWatch, Java Measurement Harness, and perf. All test scenarios will be launched against the latest official Java release (e.g. version 12).

Target audience:

  • senior developers;
  • performance engineers.

The talk is based on Ionut's article which raised a lot of interest across Compiler guys and he got in contact with few of them. This is a kind of interesting talk speaker would like to share with you at JokerConf.

Ionut Balosin
Raiffeisen Bank International AG

Ionut Balosin is an Independent Technical Trainer an a Software Architect currently employed by Raiffeisen Bank International AG. He is also a regular speaker at software development conferences and meetups around the world, delivering presentations, training courses and workshops.