Java ist seit vielen Jahren eine der beliebtesten Programmiersprachen, aber im Vergleich zu anderen Programmiersprachen wie Node.js und Python ist sie für ihre langen Kaltstartzeiten und ihren hohen Speicherbedarf bekannt.

In diesem Vortrag werde ich allgemeine Best Practices und Techniken vorstellen, mit denen wir den Speicherverbrauch und die Kaltstartzeiten für Java-Serverless-Anwendungen auf AWS Lambda reduzieren können, darunter GraalVM (Native Image) und das AWS-eigene Angebot SnapStart, das auf Firecracker microVM Snapshot and Restore und CRaC (Coordinated Restore at Checkpoint) Runtime Hooks basiert. Wir werden uns auch mit den SnapStart-Priming-Techniken befassen, mit denen wir die Lambda-Leistung steigern können, und die Auswirkungen des SnapStart-Snapshot-Tiered-Low-Latency-Caches auf die Kaltstartzeiten von Lambda diskutieren.

Für unsere Messungen verwenden wir Java 25 und zwei verschiedene serverlose Datenbanken: eine relationale Datenbank – Amazon Aurora DSQL – und eine NoSQL-Datenbank – Amazon DynamoDB. Außerdem werden wir untersuchen, wie Project Leyden, sein AOT-Cache und AWS Lambda Managed Instances in dieses Bild passen.