Lập trình 22/09/2026 6 phút

Mức nén gzip -1 tới -9: vì sao mặc định -9 thường là lãng phí

Ai cũng từng gõ gzip -9 nghĩ 'nén tối đa'. Nhưng bài này đo thật trên 11MB log: từ gzip -6 lên -9 chỉ nhỏ hơn 7% mà chậm gấp 3.5 lần; zstd còn kịch tính hơn — từ -9 lên -19 nhỏ hơn 17% nhưng chậm gấp 36 lần. Đây là luật lợi ích giảm dần, và cách chọn mức nén theo cách dùng thay vì mặc định lấy mức cao nhất.

Lập trình 22/09/2026 7 phút

gzip vs bzip2 vs xz vs zstd: bốn thuật toán nén, đo thật để biết chọn cái nào

Bốn công cụ nén phổ biến, bốn triết lý khác nhau. Bài này nén cùng một file log 25MB bằng cả bốn và đo đủ bốn số: kích thước, tỉ lệ, thời gian nén, thời gian giải nén. Kết quả thật có bất ngờ: zstd -3 nén trong 61ms còn xz mất 7 giây; zstd giải nén 12ms bất kể mức nén; và bzip2 nén chặt nhất trên log này (13.3x) vì BWT hợp dữ liệu lặp. Khi nào chọn cái nào.

Lập trình 22/09/2026 7 phút

zstd và từ điển: nén nghìn bản ghi JSON nhỏ từ 1.3x lên 4.4x

Nén từng bản ghi nhỏ riêng lẻ (cache entry, message, log record ~200 byte) cho tỉ lệ tệ hại vì mỗi lần nén bắt đầu từ số 0. Bài này đo thật trên 3000 JSON nhỏ: nén riêng không từ điển chỉ được 1.3x, nhưng huấn luyện một từ điển 8KB bằng zstd --train rồi nén với nó đạt 4.4x — cải thiện 3.5 lần. Vì sao, và khi nào từ điển là công cụ đúng.

Lập trình 22/09/2026 6 phút

Chọn thuật toán nén: khung quyết định theo bốn tiêu chí, và tổng kết cả loạt

Bài cuối loạt Nén: không có thuật toán nén tốt nhất, chỉ có tốt nhất cho ràng buộc của bạn. Bài này đo thật năm công cụ trên cùng 22MB — lz4 nén/giải nhanh nhất (32ms/9ms), xz nén chặt nhất (7.6x), zstd -19 vừa nhỏ vừa giải nhanh (7.3x, 16ms) — mỗi cái vô địch một tiêu chí khác. Kèm cây quyết định thực dụng và tổng kết 12 phần từ entropy tới chọn thuật toán.