In this talk we would like to give you a short overview of GraalVM and then move on to why the GraalVM JIT compiler is so fast / efficient, and where it really excels.
We will show some examples that will allow us to take a look at the internal IR graph that GraalVM uses to generate native code.
You'll learn about some of the most important optimisations in the GraalVM compiler
And finally we would like to talk about what it is about GraalVM that lends itself to being improved - and as an example of this we will look at some recent improvements.
GraalVM often shows the best results on a variety of Java workloads. Even more so for the JVM languages like Scala and Clojure and others.
While it's not necessary to understand how the JIT compilers work, or the particular optimizations to use the fastest runtime you can (you just need to measure and assess your options carefully), it's a very interesting topic that can be educational to Java developers.
You'll learn which code patterns get optimized well or not, you'll learn some patterns where GraalVM compiler completely outclasses its competition, and will be able to recognize them in the code you write.
You'll also get a better idea what C2 -- the default top tier JIT compiler in OpenJDK does for those code patterns and if needed could maybe use that information to manually optimize code for it.
Oleg Šelajev is a developer advocate at Oracle Labs working on GraalVM -- the high-performance embeddable polyglot virtual machine. He organizes VirtualJUG, the online Java User Group, and a GDG chapter in Tartu, Estonia. In 2017 became a Java Champion.