Comparación de tiempos de inicio Cold/Warm por runtime de AWS Lambda 2021/09
(filia-aleks.medium.com)<p>- Se probó el método POST con el flujo API-Gateway → AWS Lambda → DynamoDB <br />
- Se probaron por separado memorias de 128/256/512/1024/10240MB<br />
- Cold Start <br />
→ En general, Rust fue el más rápido. Solo en 128Mb Python quedó en primer lugar<br />
→ Excepto Java y .NET, la mayoría fueron rápidos <br />
→ Java ni siquiera puede iniciar con 128Mb, pero con GraalVM sí es posible <br />
- Warm Start <br />
→ Golang y Rust fueron los ganadores<br />
→ .Net también muestra un rendimiento casi igual al de Go/Rust, pero solo después de 1k ejecuciones repetidas (tras el JIT)<br />
→ GraalVM también muestra un rendimiento estable similar al de .Net, y es un poco más lento que Rust/Go. No funciona bien con la configuración mínima<br />
→ Java queda justo detrás de GraalVM. Java también, como .Net, solo muestra rendimiento después de 1~3k repeticiones<br />
→ Python muestra un rendimiento bueno y estable, pero en 128MB es demasiado lento <br />
→ Ruby muestra un rendimiento similar al de Python, pero después de unos 20 minutos (15k repeticiones) aumenta un poco la duración (duration) <br />
→ Node.js es el runtime más lento. También tiene la mayor duración<br />
<br />
- Considerando Cold + Warm, Golang y Rust son los ganadores. Siempre muestran resultados rápidos y estables <br />
<br />
- Runtimes comparados: 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 comentarios