Optimizing Java Startup and Warmup: Exploring the Power of CRaC on Embedded
summary
CRaC (Coordinated Restore at Checkpoint) captures a fully warmed JVM snapshot and restarts JVMs from that image, cutting framework startup from seconds to milliseconds—examples show Spring Boot dropping from ~4 s to 38 ms and a Raspberry Pi demo going from a 5 s JAR cold start and 16 s to load 1M CSV rows down to ~6 ms per request after restore. It uses CRIU checkpoint/restore on Linux, requires kernel support now present in Raspberry Pi OS, and is available in Zulu with CRaC; checkpointing writes files, kills the process, and restores almost instantly.
AI-written summary · about
chapters (8)
- 0:00Introduction and speaker background
- 12:04Java versions and updates
- 22:02Java warmup and JIT compilation
- 28:53AOT vs JIT and CRaC solution
- 33:05Adding CRaC to existing projects
- 36:17CRaC demo on Raspberry Pi
- 42:28Current state and future of CRaC
- 44:55Q&A and closing remarks
related talks
51mExploring the Power of CRaC on Embedded
53mJava on CRaC: Superfast JVM Application Startup
51mJava on CRaC Superfast JVM Application Startup
53mWhat the CRaC Superfast JVM startup
47mFast JVM Startup with Checkpoint & Restore
40mKotlin on CRaC – new JVM features to speed things up
48mDecoding Java snapshots with CRaC
46mCRAC vs GraalVM
