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

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

Chia một khóa thành 512 lối vẫn có bẫy: mỗi lần tính tổng lại đắt thêm 30 lần

Tưởng một cấu trúc chung với một khóa là đủ, hoặc càng nhiều shard càng tốt? Tôi đo: một khóa chung sụp từ 229 xuống 35,7 triệu op/s khi đông luồng, chia nhiều shard giúp throughput scale 3 lần — nhưng càng nhiều shard, tính tổng toàn cục càng đắt (65 nghìn shard mất 32,8µs). Sharding dời chi phí chứ không xóa.

Mạng 03/09/2026 9 phút

Tôi dựng lại màn 'bufferbloat' kinh điển để độ trễ nổ tung — nó nhất quyết không chịu nổ

Bóp băng thông xuống 10 mbit thì tc làm chính xác (ra 9 mbit). Nhưng cảnh đệm phình làm ping vọt hàng giây mà tôi định tái hiện lại không xảy ra: TCP đời nay tự ghìm nên đệm 3 MB chỉ đọng 8 gói. Phải flood UDP — một nguồn không biết lùi — mới bơm nó lên 86 gói và làm ping gấp ba. Đo thật.

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

Tạo một luồng tốn 47µs, fork một tiến trình chỉ 82µs: cả hai niềm tin thường gặp đều sai

Tưởng tạo luồng gần như miễn phí, còn fork đắt gấp trăm lần vì phải nhân đôi cả bộ nhớ? Tôi đo: tạo+join một luồng rỗng mất ~47µs (không hề miễn phí), fork+waitpid ~82µs — fork chỉ 1,8 lần thread nhờ copy-on-write. Cả hai đều tốn hàng chục micro giây, và đó là lý do có thread pool.

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

Chạm 30.000 trang nhưng chỉ 364 page fault — vì sao 'chia đều' cho ra sai số 6 lần

Tưởng mmap/malloc xong là có bộ nhớ dùng ngay, và đo chi phí fault chỉ cần chạm trang rồi chia số trang? Tôi đo: một minor fault ~368ns, nhưng rusage lộ ra chỉ 364 fault cho 30.000 trang vì huge page gom 512 trang mỗi fault — chia đều thành 58ns là sai gần 6 lần. Phải đếm số fault thật.

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

Bỏ if cho nhanh: mẹo hay hay giáo điều?

Code không nhánh (branchless) luôn nhanh hơn if? Đo trên host ARM: khi nhánh khó đoán (dữ liệu ngẫu nhiên), branchless nhanh gấp 3 lần vì né được dự đoán sai. Nhưng khi nhánh dễ đoán và thân điều kiện rất đắt (8 phép chia, hiếm khi chạy), bản có if lại thắng vì bỏ qua được việc đắt. Và nhiều khi trình biên dịch đã tự bỏ nhánh giúp bạn rồi mà không hay.