Speaker Details

Thomas Wuerthinger

Oracle Labs

Thomas Wuerthinger is a Senior Research Director at Oracle Labs leading the GraalVM project with teams implementing programming languages including Java, JavaScript, Ruby, Python, and R. He is the architect of the GraalVM compiler and the Truffle self-optimizing runtime system. Previously, he worked on the Crankshaft optimizing compiler of V8 at Google, and the Maxine research virtual machine at Sun Microsystems. He received a PhD degree from JKU Linz for his research about dynamic code evolution.

Abstractions Without Regret with GraalVM

Java Language

Performance-aware code often sacrifices elegance and readability for being fast. Previously, to get the best performance developers often had to manually tweak the code to follow certain patterns known to run faster, use a low-level programming language or even write assembly directly. Nowadays we have better compilers which don’t require such efforts and allow to write readable code without sacrificing performance.

In this session, we discuss how to productively write Java code while letting the compiler and runtime system worry about making it performant. We will look at the typical code patterns for writing easily maintainable, better-looking code without losing performance and discuss what areas to focus on when optimizing your Java program.You will learn more about the GraalVM compiler and how it optimizes your Java code to create optimal machine code.

The session will cover how to make best use of GraalVM in your projects for better performance and better developer productivity. Also, how GraalVM’s native image capability is a game changer for lower memory footprint and instant startup for Java applications.

Everything you need to know about GraalVM

Deep Dive
Java Language

GraalVM is a high-performance runtime for dynamic, static, and native languages. GraalVM supports Java, Scala, Kotlin, Groovy, and other JVM-based languages. At the same time, it can run the dynamic scripting languages JavaScript including node.js, Ruby, R, and Python.

GraalVM answers different performance questions and offers state-of-the-art solutions for peak-performance, startup or memory usage requirements. It's a versatile and large project, which we'll try to introduce thoroughly during this session.

We'll look at running Java applications with GraalVM, creating GraalVM native images, running dynamic languages with GraalVM and how to make them work with your existing Java code base. GraalVM has an excellent JIT compiler and we'll look at several benchmarks uncovering which optimisations are the most essential and what code patterns get the largest performance boost. We'll explain the trade-offs between running GraalVM JIT vs. GraalVM AOT, and look at the examples of GraalVM native images.

You'll learn how GraalVM implements support for the languages and what are the best practices for using them together. This session gives you a deep overview of GraalVM capabilities and allows you to effectively understand when GraalVM can help you and how to start using it.

Talks by tracksTalks by session typesList of SpeakersSchedule