Techniques for a faster JVM start-up
summary
Explains concrete ways to shave startup seconds: using dynamic CDS (AppCDS) on HotSpot cuts a typical Spring Boot boot by about a second but requires identical JDK version and stable jar timestamps; enabling OpenJ9 shared cache (includes AOT-compiled code) reduces warmup far more in these demos (roughly halving 15–8s runs); and producing a native executable with GraalVM native image (Spring Native) yields ~300 ms starts at the cost of long builds, reflection config, and missing dynamic classloading.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 2:07When JVM startup matters
- 5:15Dynamic CDS
- 8:46ABCDS
- 10:56DynamicCDFS
- 12:26Multiple DynamicCDFS
- 15:14DynamicCDFS Structure
- 17:18Practice
- 26:56Summary
- 27:29Limitations
- 28:56Eclipse OpenG9
- 35:29Native compilation
related talks
52mTechniques for a faster JVM start-up
46mSimple Tweaks to Get the Most Out of Your JVM
06mSimple Tweaks to Get the Most Out of your JVM
45mFour Approaches to Reducing Java Startup Time: AppCDS, Native Image, Project Leyden, CRaC
53mFour Approaches to Reducing Java Startup Time
01h 03mKeeping Your Java Hot.
59mRuntime Efficiencies and Spring Boot
49mComparing Java startup performance options with Quarkus
