Comparação dos tempos de inicialização Cold/Warm por runtime no AWS Lambda 2021/09
(filia-aleks.medium.com)<p>- Teste do método POST com o fluxo API-Gateway → AWS Lambda → DynamoDB <br />
- Testes realizados com 128/256/512/1024/10240MB de memória <br />
- Cold Start <br />
→ No geral, Rust é o mais rápido. Apenas em 128MB o Python fica em 1º lugar <br />
→ Com exceção de Java e .NET, a maioria é rápida <br />
→ Java nem consegue iniciar com 128MB, mas GraalVM consegue <br />
- Warm Start <br />
→ Golang e Rust são os vencedores <br />
→ .Net também mostra desempenho quase igual ao de Go/Rust, mas isso só é possível após 1k execuções repetidas (depois do JIT) <br />
→ GraalVM também mostra desempenho estável semelhante ao do .Net e é um pouco mais lento que Rust/Go. Não funciona bem com a configuração mínima <br />
→ Java vem logo atrás de GraalVM. Assim como o .Net, o Java só entrega desempenho após 1~3k repetições <br />
→ Python mostra um desempenho bom e estável, mas em 128MB é lento demais <br />
→ Ruby mostra desempenho semelhante ao do Python, mas após cerca de 20 minutos (15k repetições) há um pequeno aumento na duração (`duration`) <br />
→ Node.js é o runtime mais lento. A duração também é a mais longa <br />
<br />
- Considerando Cold + Warm, Golang e Rust são os vencedores. Sempre mostram resultados rápidos e estáveis <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 comentários