Comparaison des temps de démarrage Cold/Warm d’AWS Lambda selon les runtimes, 2021/09
(filia-aleks.medium.com)<p>- Test de la méthode POST avec le flux API-Gateway → AWS Lambda → DynamoDB <br />
- Tests effectués avec 128/256/512/1024/10240MB de mémoire<br />
- Cold Start <br />
→ Globalement, Rust est le plus rapide. À 128Mb uniquement, Python arrive en tête<br />
→ À l’exception de Java et .NET, la plupart sont rapides <br />
→ Java ne peut même pas démarrer avec 128Mb, mais GraalVM le peut <br />
- Warm Start <br />
→ Golang et Rust sont les gagnants<br />
→ .Net affiche lui aussi des performances presque équivalentes à Go/Rust, mais seulement après 1k exécutions répétées (après le JIT)<br />
→ GraalVM montre également des performances stables, similaires à .Net, et légèrement plus lentes que Rust/Go. Il ne fonctionne pas bien avec une configuration minimale<br />
→ Java arrive juste derrière GraalVM. Lui aussi, comme .Net, n’atteint ses performances qu’après 1~3k répétitions<br />
→ Python affiche des performances bonnes et stables, mais il est trop lent avec 128MB <br />
→ Ruby offre des performances similaires à Python, mais après environ 20 minutes (15k répétitions), on observe une légère hausse de la durée d’exécution (`duration`) <br />
→ Node.js est le runtime le plus lent. Sa durée d’exécution est aussi la plus longue<br />
<br />
- En combinant Cold + Warm, Golang et Rust sont les gagnants. Ils montrent toujours des résultats rapides et stables <br />
<br />
- Runtimes comparés : 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 commentaires