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

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

Một lần chạy nói 'tối ưu này chậm 2,9 lần' — lặp 15 lần lấy min: hóa ra nhanh 4,36 lần

Tưởng chạy một lần mỗi bên rồi so là đủ để biết một thay đổi đồng thời có đáng? Tôi đo: một lần chạy trúng nhiễu (outlier 13ms) đảo ngược cả kết luận — nói padded chậm 2,9 lần trong khi thật ra nó nhanh 4,36 lần. Nhiễu chỉ cộng, không trừ — nên phải lặp và lấy min.