Back To Schedule
Hall 2 - Foundations

Wednesday May 16th, 17:45-18:30

Compiling Scala Faster with GraalVM

About this Session

Scala's features such as higher-order functions and implicit conversions encourage writing concise and readable programs. These features, however, introduce many indirections and come with a hidden cost: if not removed by the compiler they can cause severe performance hits.

In this talk, we present GraalVM: a high-performance polyglot VM whose unique JIT compiler greatly improves the performance of Scala programs. We demo how GraalVM can increase the productivity of the Scala community: With GraalVM the Scala compiler is more than 1.3x faster and the compiler native image requires no warmup.

Required knowledge

Basic computer science knowledge.

Learning objectives

The idea of this talk is to present that the Scala community can improve their compilation speed by simply downloading a native image of scalac or by running scalac with GraalVM.

To demonstrate that for Scala programs using open-source version of Graal will give about 8% of performance improvement on average. This is particularly interesting for Scala as Graal removes Scala's abstractions efficiently.

It will show that for open-source projects, e.g. scalac, we can build native images with GraalVM and those images can be freely used. This gives instant startup and large performance improvements for open-source Scala programs.

The talk will also show advanced optimizations that Graal does and should be interesting for all attendees.


Vojin Jovanovic

Vojin believes that programs can be described in an abstract way and at the same time be executed as quickly as their manually optimized counterparts. To this end, he is working Oracle Labs to improve dynamic compilation in multilingual environments. Before joining Oracle, Vojin received his Ph.D. in the Scala laboratory at the Swiss Federal Institute of Technology in Lausanne (EPFL), where he developed a platform for simply adding domain-specific optimizations to existing Scala libraries.