- Thời gian chuyển ngữ cảnh: Async Task 0.2µs vs Kernel Thread 1.7µs
→ Nếu việc chuyển đổi xảy ra do I/O, chênh lệch thời gian này sẽ biến mất (cả hai đều 1.7µs)
→ Nếu ép phiên bản luồng chỉ dùng một lõi đơn, lợi thế của bất đồng bộ cũng biến mất (gần như tương đương)
-
Tạo tác vụ mới: tác vụ bất đồng bộ ~0.3µs vs luồng kernel 17µs
-
Mức sử dụng bộ nhớ: tác vụ bất đồng bộ vài trăm byte vs luồng kernel 20KiB (9.5KiB user, 10KiB kernel)
→ Đây là mức cơ sở của tác vụ gần như không làm gì; nếu thực sự chạy công việc thì sẽ cần nhiều hơn
- Có thể dễ dàng tạo 250.000 tác vụ bất đồng bộ, nhưng trên laptop 4 lõi/32GiB thì 80.000 luồng là mức tối đa
1 bình luận
Đây là benchmark được thực hiện với mục đích không chỉ nói đơn giản rằng bất đồng bộ vượt trội hơn nhiều về hiệu năng/hiệu quả, mà còn cần hiểu phần bên trong rồi hãy bàn.
Thực tế, phát triển bất đồng bộ cũng có nhiều bug và những điểm khó hơn, nên cần thận trọng.