AWS Lambda ランタイム別 Cold/Warm 起動時間の比較 2021/09
(filia-aleks.medium.com)<p>- API-Gateway → AWS Lambda → DynamoDB フローで POST メソッドをテスト <br />
- メモリ 128/256/512/1024/10240MB をそれぞれテスト<br />
- Cold Start <br />
→ 全体的に Rust が最速。128Mb では Python が1位<br />
→ Java と .NET を除けば、ほとんどが高速 <br />
→ Java は 128Mb では起動すらできないが、GraalVM は可能 <br />
- Warm Start <br />
→ Golang と Rust が勝者<br />
→ .Net も Go/Rust とほぼ同等の性能を示すが、1k 回の繰り返し実行後でないと出ない(JIT 後)<br />
→ GraalVM も .Net と似た安定した性能を示し、Rust/Go よりはやや遅い。最小セットアップではうまく動作しない<br />
→ Java は GraalVM のすぐ後ろ。Java も .Net と同様に 1〜3k 回の繰り返し後でないと性能が出ない<br />
→ Python は安定して良好な性能を示すが、128MB では遅すぎる <br />
→ Ruby は Python と似た性能を示すが、20分ほど(15k 回の繰り返し)後には duration がやや増加する <br />
→ Node.js が最も遅いランタイム。duration も最長<br />
<br />
- Cold + Warm で見ると Golang と Rust が勝者。常に速く安定した結果を示す <br />
<br />
- 比較ランタイム : 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件のコメント