Giữa xz, gzip và bzip2, thuật toán nén nào hiệu quả nhất?


16

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?


'tốt nhất' như trong 'dẫn đến kích thước tệp nhỏ nhất'?
Hennes

Tôi không biết, tôi đã cố gắng tìm cách nào đó để đặt câu hỏi để tôi có thể thêm bài kiểm tra của mình làm câu trả lời. Tôi cũng không biết tại sao thứ này lại bị đóng cửa. @Karan
Nathan2055

1
Oh, tại sao nó được đóng lại dễ dàng. "Tốt nhất" mang tính chủ quan cao và thường dẫn đến các cuộc thảo luận hoặc câu trả lời không mang tính xây dựng. Nén tốt nhất có thể là kích thước tệp nhỏ nhất, nén nhanh nhất, ít năng lượng nhất được sử dụng để nén (ví dụ: trên máy tính xách tay), ít ảnh hưởng nhất đến hệ thống trong khi nén (ví dụ: các chương trình đơn lẻ cổ chỉ sử dụng một trong các lõi), ... hoặc kết hợp của tất cả những người đó.
Hennes

Một bài viết thú vị để đọc là tomshardware.com/reviews/winrar-winzip-7-zip-magicrar,3436.html (dựa trên windows và tập trung vào 7zip, magicRAR, WinRAR và WinZip thay vì xz, gz hoặc bz, nhưng vẫn thú vị và cung cấp thông tin cơ bản).
Hennes

@ Hennes - Tôi đã làm sạch bài đăng để thay thế tốt nhất với chính xác những gì tôi đang nghiên cứu. Ngoài ra, cảm ơn về bài viết mà bạn đề cập, tôi sẽ đọc nó sau ngày hôm nay.
Nathan2055

Câu trả lời:


15

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ó.


2
Nghiên cứu tốt. Bạn đã thử các tùy chọn mức nén khác nhau được cung cấp bởi (ít nhất) bzip2, vd bzip2 -9 <file>chưa?
Aaron Miller

@AaronMiller - Không, có thể sử dụng những thứ đó qua 7-Zip không?
Nathan2055

Nó xuất hiện như vậy, mặc dù tôi không chắc ở mức độ nào: xem dotnetperls.com/7-zip-examples , phần "Chuyển m".
Aaron Miller

7
Vì tò mò, tập tin thử nghiệm thuộc loại dữ liệu nào?
GeminiDomino

Lưu ý rằng các loại dữ liệu khác nhau sẽ dẫn đến kích thước nén khác nhau. Xem ở đây để biết ví dụ.
Ploni

4

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


Sinh viên, lựa chọn của rar là gì? Tại sao không thử lrzip bởi kolivas , nó sẽ hoạt động tốt cho hình ảnh đĩa ảo.
osgx 14/03/2015

Tôi đang di chuyển từ RAR sang Git và tarball cho các tệp văn bản và btrfs của tôi cho mọi thứ khác; Lý do tôi sử dụng RAR không phải là hiệu suất, tôi đang sử dụng nó vì các tính năng như bản ghi khôi phục, tổng kiểm tra 256bit cấp độ tệp riêng biệt cho mỗi tệp và ....
Sudoer 14/03/2015

3

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

  • xz: 4m51s @ 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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.