Vergleich der Cold-/Warm-Startzeiten von AWS-Lambda-Laufzeiten, 2021/09
(filia-aleks.medium.com)<p>- Test der POST-Methode mit dem Flow API-Gateway → AWS Lambda → DynamoDB <br />
- Test mit jeweils 128/256/512/1024/10240MB Arbeitsspeicher<br />
- Cold Start <br />
→ Insgesamt ist Rust am schnellsten. Nur bei 128Mb liegt Python auf Platz 1<br />
→ Mit Ausnahme von Java und .NET sind die meisten schnell <br />
→ Java kann mit 128Mb nicht einmal starten, GraalVM jedoch schon <br />
- Warm Start <br />
→ Golang und Rust sind die Gewinner<br />
→ .Net zeigt ebenfalls eine nahezu vergleichbare Leistung wie Go/Rust, aber erst nach 1k wiederholten Ausführungen (nach JIT)<br />
→ GraalVM zeigt ebenfalls eine ähnliche stabile Leistung wie .Net und ist etwas langsamer als Rust/Go. Mit Minimal-Setup funktioniert es nicht gut<br />
→ Java folgt direkt hinter GraalVM. Auch Java liefert seine Leistung wie .Net erst nach 1–3k Wiederholungen<br />
→ Python zeigt eine stabil gute Leistung, ist aber bei 128MB zu langsam <br />
→ Ruby zeigt eine ähnliche Leistung wie Python, aber nach etwa 20 Minuten (15k Wiederholungen) steigt die Laufzeit (`duration`) leicht an <br />
→ Node.js ist die langsamste Laufzeit. Auch die Laufzeitdauer ist am längsten<br />
<br />
- Betrachtet man Cold + Warm zusammen, sind Golang und Rust die Gewinner. Sie zeigen stets schnelle und stabile Ergebnisse <br />
<br />
- Verglichene Laufzeiten: NodeJs(14.x), Python(3.9), Go(1.x), Ruby(2.7), .Net(3.1), Java (11), Rust(1.54.0), GraalVM(21.2)<br />
</p>
5 Kommentare