Giữa xz, gzip và bzip2, thuật toán nén nào cho kích thước tệp nhỏ nhất và tốc độ nhanh nhất khi nén tarball khá lớn?
Giữa xz, gzip và bzip2, thuật toán nén nào cho kích thước tệp nhỏ nhất và tốc độ nhanh nhất khi nén tarball khá lớn?
Câu trả lời:
Trong bài kiểm tra căng thẳng của mình, tôi đã nén 464 megabyte dữ liệu bằng ba định dạng được liệt kê. Gzip trả về một tệp 364 MB. Bzip2 trả về một tệp 315 MB. Xz đã trả lại một tệp 254 MB. Tôi cũng đã làm một bài kiểm tra tốc độ đơn giản:
Nén:
1: Gzip
2: Xz
3: Bzip2 (quạt của tôi đã thổi khá nhiều trong khi điều này đang diễn ra, cho thấy Athlon II của tôi khá căng thẳng)
Giảm bớt sức ép:
1: Xz
2: Gzip
3: Bzip2
Xin lưu ý rằng tất cả các thử nghiệm này đã được thực hiện với phiên bản 7-Zip mới nhất.
Xz là định dạng tốt nhất để nén tròn, trong khi Gzip rất tốt cho tốc độ. Bzip2 phù hợp với tỷ lệ nén của nó, mặc dù xz có lẽ nên được sử dụng ở vị trí của nó.
bzip2 -9 <file>
chưa?
Tôi đã thực hiện điểm chuẩn của riêng mình trên hình ảnh vmdk cài đặt Linux 1.1GB:
rar =260MB comp= 85s decomp= 5s
7z(p7z)=269MB comp= 98s decomp=15s
tar.xz =288MB comp=400s decomp=30s
tar.bz2=382MB comp= 91s decomp=70s
tar.gz =421MB comp=181s decomp= 5s
tất cả các mức nén tối đa, CPU Intel I7 3740QM, Bộ nhớ 32GB 1600, nguồn và đích trên đĩa RAM
Tôi thường sử dụng rar hoặc 7z để lưu trữ các tệp bình thường như tài liệu.
và để lưu trữ các tệp hệ thống, tôi sử dụng .tar.gz hoặc .tar.xz bằng cách lăn tệp hoặc tar với các tùy chọn -z hoặc -J cùng với --preserve để nén nguyên bản bằng tar và bảo toàn quyền (cũng thay thế .tar.7z hoặc .tar.rar có thể được sử dụng)
update: vì tar chỉ bảo toàn quyền bình thường chứ không phải ACL, dù sao, cũng đơn giản .7z cộng với sao lưu và khôi phục quyền và ACL thủ công thông qua getfacl và sefacl có thể là tùy chọn tốt nhất cho cả lưu trữ tệp hoặc sao lưu tệp hệ thống vì nó sẽ đầy giữ quyền và ACL, có tổng kiểm tra, kiểm tra tính toàn vẹn và khả năng mã hóa, chỉ có nhược điểm là p7zip không có sẵn ở mọi nơi
Tôi nghĩ rằng bài viết này cung cấp kết quả rất thú vị.
http://pokecraft.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO
Các định dạng hiệu quả nhất về kích thước là xz và lzma, cả hai đều có tham số -e được truyền.
Thuật toán nhanh nhất là lzop và lz4 có thể tạo ra mức nén không quá xa gzip trong 1,3 giây trong khi gzip mất 8.1 giây. Tỷ lệ nén là 2,8 đối với lz4 và 3,7 đối với gzip.
Dưới đây là một vài kết quả tôi trích xuất từ bài viết này:
Gzip: 8.1s @ 3.7
lz4: 1,3s @ 2,8
xz: 32,2 giây @ 5,43
xz -e: 6m40 @ 7.063
Vì vậy, nếu bạn thực sự rất cần tốc độ, lz4 là tuyệt vời và vẫn cung cấp tỷ lệ nén 2,8.
Nếu bạn rất cần phải dự phòng byte, xz ở mức nén tối đa (9) thực hiện công việc tốt nhất cho các tệp văn bản như nguồn kernel. Tuy nhiên, nó rất dài và chiếm nhiều bộ nhớ.
Một thứ tốt khi cần để giảm thiểu tác động đến thời gian VÀ không gian là gzip. Đây là cái tôi sẽ sử dụng để tạo bản sao lưu thủ công hàng ngày của môi trường sản xuất.