So sánh thời gian khởi động Cold/Warm theo từng runtime của AWS Lambda 2021/09
(filia-aleks.medium.com)<p>- Kiểm thử phương thức POST với luồng API-Gateway → AWS Lambda → DynamoDB <br />
- Kiểm thử lần lượt với bộ nhớ 128/256/512/1024/10240MB<br />
- Cold Start <br />
→ Nhìn chung Rust nhanh nhất. Chỉ ở mức 128Mb thì Python đứng đầu<br />
→ Ngoài Java và .NET thì đa số đều nhanh <br />
→ Java thậm chí không thể khởi động với 128Mb, nhưng GraalVM thì có thể <br />
- Warm Start <br />
→ Golang và Rust là những bên chiến thắng<br />
→ .Net cũng cho hiệu năng gần như tương đương Go/Rust, nhưng chỉ sau khi chạy lặp 1k lần (sau JIT)<br />
→ GraalVM cũng cho hiệu năng ổn định tương tự .Net và chậm hơn Rust/Go một chút. Không hoạt động tốt với thiết lập tối thiểu<br />
→ Java đứng ngay sau GraalVM. Java cũng giống .Net, chỉ đạt hiệu năng sau 1~3k lần lặp<br />
→ Python cho hiệu năng ổn định và tốt, nhưng ở 128MB thì quá chậm <br />
→ Ruby cho hiệu năng tương tự Python, nhưng sau khoảng 20 phút (15k lần lặp) thì duration tăng nhẹ <br />
→ Node.js là runtime chậm nhất. Duration cũng dài nhất<br />
<br />
- Nếu xét cả Cold + Warm thì Golang và Rust là những bên chiến thắng. Luôn cho kết quả nhanh và ổn định <br />
<br />
- Các runtime được so sánh: 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 bình luận