The just-in-time (JIT) compilers used by JVMs are marvelous pieces of technology that are crucial to achieving high performance, but they aren't without their downsides. Most notably — warm-up time and deoptimization.
Ahead-of-time (AOT) compilers seem like the obvious answer to these problems. Unfortunately, parts of the Java language and Java ecosystem are hostile to ahead-of-time compilation. And often, AOTs have to sacrifice key optimizations performed by JITs.
ReadyNow is Azul System's solution to these problems that aims to combine the best qualities of a JIT and an AOT. In this talk, we'll dive into the details of Azul's ReadyNow technology. We will look at ReadyNow's impact on warm-up and deoptimization, but we'll also see how ReadyNow solves some of the inherent challenges faced by a Java AOT.