Lập trình 12/11/2026 6 phút

Rust đo thật — async/await với Tokio: 100.000 task chạy đồng thời trên 10 luồng tốn ~393 byte mỗi task, trong khi mỗi luồng hệ điều hành ngốn ~9800 byte RSS (và dành riêng 2 MB stack); Future chỉ là máy trạng thái 1–80 byte

Phần 11 sê-ri Rust đo thật: async/await cho phép hàng nghìn tác vụ đồng thời trên vài luồng, mỗi tác vụ nhẹ hơn một luồng hệ điều hành cả chục lần. Đo trong container rust 1.99.1 + tokio 1.54.1: 100.000 task async cùng sống, chạy trên runtime chỉ 10 luồng worker, tốn thêm ~38 MB — tức ~393 byte mỗi task. Để so, 10.000 luồng hệ điều hành cùng sống tốn ~95 MB RSS — ~9800 byte mỗi luồng, gấp 25 lần, mỗi luồng còn dành riêng 2 MB stack ảo. Lý do: một async fn biên dịch thành MÁY TRẠNG THÁI đúng bằng thứ nó giữ qua điểm await — Future hàm rỗng chỉ 1 byte, Future giữ mảng [u64;8] qua await 80 byte.