Có nhiều thuật toán nén xung quanh, và bzip2là một trong những thuật toán chậm hơn. Đồng bằng gzipcó xu hướng nhanh hơn đáng kể, thường không nén nhiều hơn. Khi tốc độ là quan trọng nhất, lzoplà yêu thích của tôi. Nén kém, nhưng oh quá nhanh.
Tôi quyết định có một số niềm vui và so sánh một vài thuật toán, bao gồm cả việc triển khai song song của chúng. Tệp đầu vào là đầu ra của pg_dumpalllệnh trên máy trạm của tôi, tệp SQL 1913 MB. Phần cứng là một i5 lõi tứ cũ hơn. Thời gian là thời gian đồng hồ treo tường của chỉ nén. Việc triển khai song song được thiết lập để sử dụng cả 4 lõi. Bảng được sắp xếp theo tốc độ nén.
Algorithm Compressed size Compression Decompression
lzop 398MB 20.8% 4.2s 455.6MB/s 3.1s 617.3MB/s
lz4 416MB 21.7% 4.5s 424.2MB/s 1.6s 1181.3MB/s
brotli (q0) 307MB 16.1% 7.3s 262.1MB/s 4.9s 390.5MB/s
brotli (q1) 234MB 12.2% 8.7s 220.0MB/s 4.9s 390.5MB/s
zstd 266MB 13.9% 11.9s 161.1MB/s 3.5s 539.5MB/s
pigz (x4) 232MB 12.1% 13.1s 146.1MB/s 4.2s 455.6MB/s
gzip 232MB 12.1% 39.1s 48.9MB/s 9.2s 208.0MB/s
lbzip2 (x4) 188MB 9.9% 42.0s 45.6MB/s 13.2s 144.9MB/s
pbzip2 (x4) 189MB 9.9% 117.5s 16.3MB/s 20.1s 95.2MB/s
bzip2 189MB 9.9% 273.4s 7.0MB/s 42.8s 44.7MB/s
pixz (x4) 132MB 6.9% 456.3s 4.2MB/s 7.9s 242.2MB/s
xz 132MB 6.9% 1027.8s 1.9MB/s 17.3s 110.6MB/s
brotli (q11) 141MB 7.4% 4979.2s 0.4MB/s 3.6s 531.6MB/s
Nếu 16 lõi của máy chủ của bạn không đủ để tất cả có thể được sử dụng để nén, pbzip2có thể sẽ giúp bạn tăng tốc rất đáng kể. Nhưng bạn cần nhiều tốc độ hơn và bạn có thể chịu được các tệp lớn hơn ~ 20%, gzipcó lẽ là lựa chọn tốt nhất của bạn.
Cập nhật: Tôi đã thêm brotli(xem câu trả lời của QUÁN) vào bảng. brotlis cài đặt chất lượng nén có tác động rất lớn về tỷ lệ nén và tốc độ, vì vậy tôi thêm ba thiết lập ( q0, q1và q11). Mặc định là q11, nhưng nó cực kỳ chậm, và vẫn còn tệ hơn xz. q1trông rất tốt mặc dù; tỷ lệ nén tương tự gzip, nhưng nhanh gấp 4-5 lần!
Cập nhật: Đã thêm lbzip2(xem bình luận của gmathts) và zstd(bình luận của Johnny) vào bảng và sắp xếp nó theo tốc độ nén. lbzip2đưa bzip2gia đình trở lại hoạt động bằng cách nén nhanh gấp ba lần pbzip2với tỷ lệ nén tuyệt vời! zstdcũng có vẻ hợp lý nhưng được đánh bại bởi brotli (q1)cả tỷ lệ và tốc độ.
Kết luận ban đầu của tôi rằng đơn giản gziplà đặt cược tốt nhất đang bắt đầu trông gần như ngớ ngẩn. Mặc dù đối với sự phổ biến, nó vẫn không thể bị đánh bại;)