Java on CRaC: Superfast JVM Application Startup
summary
Proposes using CRaC (Coordinated Restore at Checkpoint) to snapshot a warmed JVM process and restore it instantly, implemented as an OpenJDK proof‑of‑concept that builds on CRIU and exposes a simple resource API with beforeCheckpoint/afterRestore callbacks. Benchmarks show warm services (Spring Boot, Quarkus, Micronaut) drop startup from seconds to ~33–48 ms and Spring first‑operation from 4 s to 38 ms. Works on Linux only and aborts if sockets/files remain open.
AI-written summary · about
chapters (18)
- 0:00Introduction
- 0:48Why is Java so popular
- 8:34Ahead of time compilation
- 12:53Speculative optimization
- 15:15Branch analysis
- 17:48speculative optimizations
- 18:50aot vs jit
- 25:14Challenges with Snapshots
- 26:16Restore Checkpoint
- 29:49Context
- 31:52Jetty Server
- 32:13Jetty Checkpoint
- 33:06Resource Interface
- 33:40Checkpoint Restore
- 36:02Overhead
- 36:47Summary
- 37:59Technical Support
- 46:07Questions
related talks
51mJava on CRaC Superfast JVM Application Startup
53mWhat the CRaC Superfast JVM startup
45mOptimizing Java Startup and Warmup: Exploring the Power of CRaC on Embedded
47mFast JVM Startup with Checkpoint & Restore
46mCRAC vs GraalVM
52mDuke on CRaC with Jakarta EE
40mKotlin on CRaC – new JVM features to speed things up
48mDecoding Java snapshots with CRaC
