JavaJava
Conference45min
INTERMEDIATE

Keeping Your Java Hot by Solving the JVM Warmup Problem

This abstract discusses ways to improve Java Virtual Machine (JVM) application performance by reducing warmup time. Strategies include Ahead-of-Time compilation, reusing JIT compiler profiles, decoupling JIT compiler for cloud environments, and creating application checkpoints. The Graal native image approach and Project CRaC will be explored as examples.

Simon Ritter
Simon RitterAzul

talkDetail.whenAndWhere

Friday, April 19, 10:30-11:15
Neuilly 151
talks.description
Java bytecodes and class files deliver on the original vision of “write once, run anywhere”. Using a Just-in-Time (JIT) compiler allows JVM-based applications to compile only the code that’s being used frequently and optimise it precisely for how it is being used. Using techniques like speculative optimisation can often deliver better performance than static, Ahead-of-Time (AOT) compiled code.

However, this flexibility and performance comes at a cost. Each time the JVM starts an application, it must perform the same analysis to find hot spots of code and compile them. This is referred to as the application warmup time.

In this session, we’ll look at several approaches to how this problem can be alleviated or even eliminated. Specifically:

· Ahead-of time (AOT) compilation. Specifically, the Graal native image approach
· Generating a JIT compiler profile of a running, warmed-up application that can be reused when the same application is restarted, eliminating the need for much of the JIT compilation.
· Decoupling the JIT compiler from the JVM for a Cloud environment. Providing a centralised JIT-as-a-Service allows caching of compiled code and offloading the compilation work when new code must be compiled.
· Creating a checkpoint of a running application. This includes all application state (heap, stack, etc.) in addition to the JIT-compiled code. Project CRaC will be used as an example.

At the end of the session, you’ll be all set to keep your Java hot!
aot compilation
Application warmup
JIT compiler
Java bytecodes
talks.speakers
Simon Ritter

Simon Ritter

Azul

United Kingdom

Simon Ritter is the Deputy CTO of Azul. Simon joined Sun Microsystems in 1996 and spent time working in both Java development and consultancy. He has been presenting Java technologies to developers since 1999 focusing on the core Java platform as well as client and embedded applications. At Azul, he continues to help people understand Java and Azul’s JVM products.
Simon is a Java Champion and two time recipient of the JavaOne Rockstar award. In addition, he represents Azul on the JCP Executive Committee, the OpenJDK Vulnerability Group as well as the JSR Expert Group since Java SE 9.
comments.title

comments.speakerNotEnabledComments