Startup Challenges
summary
Startup work reduces lambda bootstrap from roughly 90 ms to ~6–7 ms by removing unnecessary method-handle type checks, and per-lambda cost falls to about 0.19 ms (versus ~0.14 ms for anonymous classes). Improvements use CDS/jlink plugins and AOT wiring across JDK 8→11, plus bytecode and VM micro‑optimizations; string concatenation via invokedynamic still shows ~35–40 ms initial overhead per benchmark and needs different fixes (condy/constantdynamic and simpler method‑handle trees) to avoid class‑generation and combinator‑tree costs.
AI-written summary · about
chapters (14)
- 0:00Intro
- 0:33Startup challenges at a glance...
- 3:30Startup optimization techniques
- 5:48But let's start from the beginning...
- 10:47Hello World: Bytecodes executed
- 12:25Hello form factors
- 19:31Lambda translation
- 20:53Lambda class generation
- 22:42Introducing Condy
- 23:18Using Condy to bootstrap Lambdas
- 27:33Profiling ISC initialization
- 30:00Towards better metaprogramming
- 32:01Towards better bytecode generation
- 33:05Better constants better code generation?
related talks
44mIt’s Java, but Not As We Know It
42mTechniques for a faster JVM start-up
46mThawing Java on AWS Lambda Reducing Cold Start Times from 11 Seconds to 1
46mSimple Tweaks to Get the Most Out of Your JVM
19mTen things that improve the performance of your Java based AWS Lambda
53mHigh performance Serverless Java on AWS
01h 10mState of java.lang.invoke
34mThawing Java on AWS Lambda
