Java in a world of containers
summary
Cold-start benchmark goes from ~156 ms to ~123 ms by creating an 18 MB class data sharing file with java -Xshare:dump (about 30 ms saved), and down to ~101 ms when combined with jaotc ahead‑of‑time compilation. Image size drops from ~568 MB full JDK to ~46 MB using jlink (a Netty profile can be ~16 MB). Musl/Alpine builds use Project Portola and the extreme is substrate vm producing single‑digit‑MB static binaries. JVM now respects cgroup memory/CPU heuristics since JDK8–10.
AI-written summary · about
chapters (12)
- 0:00Introduction to Java in containers
- 3:16Why Java fits containers
- 4:41Fast startup techniques
- 13:13Class data sharing demo
- 14:01Application CDS in Java 10
- 15:06AOT compilation for startup
- 19:47Building small container images
- 22:35Using j-link for modular JVM
- 28:07Minimizing JVM and code size
- 29:51Substrate VM overview
- 30:14Respecting container environment
- 34:26Java platform group commitment
related talks
46mJava in a World of Containers
45mJVMs in Containers, Towards a Perfect Symbiosis!
49mJava and Containers Make it Awesome
48mJava in Containers - Part Deux
46mSimple Tweaks to Get the Most Out of Your JVM
47mLegal JVM Doping in Your Containers
50mDocker Who: Small Containers Through Time and Space
25mCommit to Excellence - Java in Containers
