Q

Quản trị viên

Là một lập trình viên yêu công nghệ, thích viết blog để chia sẻ kiến thức, kinh nghiệm lập trình và những điều thú vị trong thế giới tech.

2300 bài viết · Website
Mạng 03/09/2026 9 phút

Ai cũng bảo protobuf nhỏ hơn JSON cả chục lần — tôi đo ra chỉ 2 lần, và cái lợi thật nằm chỗ khác

Cùng một bản ghi, protobuf nhỏ hơn JSON ~2 lần và mã hóa nhanh hơn 7 lần — không phải 'chục lần' như đồn, và gzip còn làm phình một payload nhỏ. Cái lợi thật của gRPC hóa ra không phải vài byte, mà là CPU ở quy mô lớn, hợp đồng lược đồ, và bốn kiểu gọi streaming. Đo thật.

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

Tôi định chứng minh 'xâu cáp không thành mạng' — nó lại chạy, vì Docker đã lén bật một công tắc

veth là sợi cáp ảo nối đúng hai vùng, cầu nối là switch ảo cho nhiều vùng — bộ khung của mạng Docker. Tôi dựng một chuỗi cáp để chứng minh nó không thể thành mạng, rồi ngã ngửa khi nó thông ngay: network namespace thừa kế ip_forward=1 của Docker chứ không phải 0 như máy Linux trần. Đo thật.

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

Khi mảng quét O(n) đánh bại hash map O(1)

Hash map O(1) nên luôn nhanh nhất cho tra cứu? Đo ra: với khóa chuỗi (băm phải đọc cả 24 ký tự ~10ns), quét tuyến tính một mảng nhỏ thắng hash map tới n≈16 — vì hằng số nhỏ hơn nhiều: cache liền, so sánh thoát sớm, không băm, không con trỏ. Big-O là tiệm cận n→vô cùng; ở n nhỏ chính hằng số quyết định, và điểm giao tùy giá của khóa.

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

56 KB co xuống 152 byte nhờ một dòng 304 — trừ khi ETag của bạn tính sai, và nó hỏng không một tiếng kêu

Một lần revalidate với ETag khớp biến response 56 KB thành 152 byte — tiết kiệm hơn 99% băng thông. Nhưng một ETag đổi mỗi lần (bug rất phổ biến) biến mọi 304 thành 200, đốt lại toàn bộ băng thông mà trang vẫn chạy đúng, test vẫn xanh, không lỗi nào báo. Đo thật bằng byte trên dây.