High performance Serverless Java on AWS
summary
Measurements show unoptimized Java Lambdas hit ~3.3s P90 cold starts (warm P90 ~7ms) across ~100 cold starts/hour. Enabling SnapStart plus a simple DynamoDB priming cuts P90 by ~1.5s to ~1s; priming runs during deployment. Switching HTTP clients to AWS CRT HTTP client reduces cold and warm latency versus URLConnection/Apache. Building with GraalVM Native Image drops P90 to ~0.5s and lets memory fall to 512–768MB, but native builds need Linux, larger CI resources, and SnapStart adds ~2.5 minutes per deployment and has feature limitations.
AI-written summary · about
chapters (8)
- 0:00Introduction and speaker background
- 10:52Java performance challenges in serverless
- 20:26Understanding Lambda cold starts
- 30:20Optimizing cold starts with snap start
- 36:52Java compilation options for Lambda
- 41:12GraalVM Native Image for serverless
- 49:02Alternatives to DynamoDB for serverless
- 50:05Recommendations and closing
related talks
46mReduce Cold Starts for Java Serverless Applications in AWS
51mHow To Reduce Cold Starts for Java Serverless Applications in AWS
44mHow to develop, run and optimize Spring Boot 3 application on AWS Lambda
51mAdapting Java for the Serverless world!
46mThawing Java on AWS Lambda Reducing Cold Start Times from 11 Seconds to 1
19mTen things that improve the performance of your Java based AWS Lambda
01h 00mAdapting Java for the Serverless world
56mAfraid of Java cold starts in Serverless? Fear not, Java is fast
