Bài viết mới nhất

Tổng 1873 bài
Giải thuật 03/09/2026 8 phút

Một signal tốn 489ns — gấp 1.600 lần một cờ atomic, đừng dùng nó làm kênh báo hiệu

Tưởng signal là cách rẻ, nhanh để báo hiệu giữa tiến trình? Tôi đo: một signal tốn 489ns — gần 5 lần một syscall và 1.600 lần một cờ atomic — vì mỗi lần nhân phải ngắt luồng, lưu ngữ cảnh, dựng khung handler rồi sigreturn. Signal là cho sự kiện hiếm, không phải kênh tần suất cao.

Giải thuật 03/09/2026 8 phút

nice không làm tiến trình chạy nhanh hơn — trên máy rảnh nó vô nghĩa hoàn toàn

Tưởng nice thấp thì chạy nhanh hơn theo tỉ lệ, và nice luôn có tác động? Tôi đo: nice chỉ chia CPU khi bão hòa — hai tiến trình trên 10 lõi rảnh, nice 0 vs 19 vẫn 50/50; và tác động phi tuyến, chênh 5 gần như không đổi, phải chênh 19 mới lệch 21 lần. nice là công cụ chia phần, không phải nút tăng tốc.

Giải thuật 03/09/2026 8 phút

Đọc /proc trông như đọc file, nhưng đắt gấp 13 lần một syscall — đừng poll nó liên tục

Tưởng /proc rẻ như đọc một biến nên poll thoải mái? Tôi đo: mỗi lần đọc /proc/self/stat tốn 1342ns — 13 lần một syscall, hàng nghìn lần một đọc biến — vì /proc là filesystem ảo, mỗi lần đọc là 3 syscall cộng nhân sinh text tươi, không hề được cache, rồi bạn còn phải parse.

Giải thuật 03/09/2026 8 phút

CFS chia CPU đều tới dưới 2% — nhưng 'công bằng' không có nghĩa 'phản hồi ngay'

Tưởng bộ lập lịch chỉ đại khái công bằng, ai may thì được nhiều CPU? Tôi đo: CFS chia CPU chính xác 1/N cho mỗi tiến trình (lệch dưới 2%) và không bỏ đói ai — nhưng cái giá của công bằng là độ trễ: mỗi tiến trình chờ tới lượt, với 4 tiến trình là ~15ms. Công bằng tổng phần khác phản hồi nhanh.