Optimizing Containerized #Java Apps with Jib, #GraalVM, CDS, & #CRaC
summary
Practical recipes compare five optimizations on a Spring Boot Java 21 CRUD: custom runtime: ~37% smaller image, modest startup gain; Jib: ~35% smaller image and noticeably faster startup with no Docker daemon; GraalVM native: ~90–97% faster startup but larger binary, long builds (~50 minutes) and loss of JIT benefits; CDS: better startup than custom/Jib with simple build flags and AOT integration; *CRaC: best cold-starts via pre-warmed checkpoints but requires code changes to close/reopen resources and larger images.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 1:09Java in enterprise today
- 4:00Java container challenges
- 7:14Key optimization areas
- 12:09Custom Java runtime demo
- 16:45Jib for container builds
- 19:34GraalVM overview
- 26:20Class Data Sharing
- 31:56CRaC explained
- 42:08Technology maturity discussion
- 49:10Next steps and resources
- 51:25CRaC demo walkthrough
- 1:00:05Q&A
related talks
45mFour Approaches to Reducing Java Startup Time: AppCDS, Native Image, Project Leyden, CRaC
49mJava and Containers Make it Awesome
47mOptimize your Java application for containers and serverless
47mLegal JVM Doping in Your Containers
46mJava in a World of Containers
45mJVMs in Containers, Towards a Perfect Symbiosis!
32mDockerfile vs Jib vs Pack vs Native Image: Which Is the Best Image Build Method?
53mThe Next Evolution of Java: ☕️ Achieving Hyper Performance and Efficiency in Cloud Native Workloads
