In this session, we'll look at several approaches to alleviating or even eliminating this problem.
Specifically:
-
Static compilation of Java code Ahead-of-Time (AOT).
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.
This will include details of the work of the OpenJDK Project Leyden.
-
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.
|