Có nhiều thuật toán nén xung quanh, và bzip2
là một trong những thuật toán chậm hơn. Đồng bằng gzip
có 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, lzop
là 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_dumpall
lệ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, pbzip2
có 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%, gzip
có 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. brotli
s 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
, q1
và q11
). Mặc định là q11
, nhưng nó cực kỳ chậm, và vẫn còn tệ hơn xz
. q1
trô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 bzip2
gia đình trở lại hoạt động bằng cách nén nhanh gấp ba lần pbzip2
với tỷ lệ nén tuyệt vời! zstd
cũ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 gzip
là đặ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;)