Ưu và nhược điểm của bzip vs gzip?


120

Tôi đã biết gzip trong nhiều năm, gần đây tôi thấy bzip đang được sử dụng tại nơi làm việc. Về cơ bản chúng có tương đương với nhau không, hay có những ưu và nhược điểm đáng kể đối với một trong số chúng so với cái kia?


2
Mặc dù đây là một câu hỏi cũ với câu trả lời hợp lệ và chính xác, tôi muốn hướng mọi người đến kết quả google này: tukaani.org/lzma/benchmark.html vì nó sẽ phá vỡ nó thêm
Angry 84

Không phải là bzip để nén và gzip để lưu trữ?
juniorRubyist

@juniorRubyist nguồn?
ripper234

Tôi chỉ nghe nói rằng. Tôi quên mất đâu.
juniorRubyist

Không đề cập đến truy cập ngẫu nhiên? stackoverflow.com/questions/14225751/
hy

Câu trả lời:


145

Gzip và bzip2 tương đương về chức năng. (Đã từng có một bzip, nhưng dường như nó đã biến mất hoàn toàn khỏi bộ mặt của thế giới.) Các định dạng nén phổ biến khác là zip, rar và 7z; cả ba đều thực hiện cả nén và lưu trữ (đóng gói nhiều tệp thành một). Dưới đây là một số xếp hạng tiêu biểu về tốc độ, tính khả dụng và tỷ lệ nén điển hình (lưu ý rằng các xếp hạng này hơi chủ quan, đừng coi chúng là tin lành):

decompression speed (fast > slow): gzip, zip > 7z > rar > bzip2
compression speed (fast > slow): gzip, zip > bzip2 > 7z > rar
compression ratio (better > worse): 7z > rar, bzip2 > gzip > zip
availability (unix): gzip > bzip2 > zip > 7z > rar
availability (windows): zip > rar > 7z > gzip, bzip2

Như bạn có thể thấy, không có một người chiến thắng rõ ràng. Nếu bạn muốn dựa vào các chương trình có khả năng đã được cài đặt, hãy sử dụng zip trên Windows (hoặc nếu có thể, tự giải nén tài liệu lưu trữ, vì Windows không cung cấp bất kỳ chương trình nào trong số này) và gzip trên unix. Nếu bạn muốn nén tối đa, sử dụng 7z.

Rar cũng có nhược điểm là, theo như tôi biết, không có phần mềm miễn phí nào tạo ra tài liệu lưu trữ rar hoặc có thể giải nén tất cả tài liệu lưu trữ rar. Các định dạng khác có triển khai miễn phí và không yêu cầu bằng sáng chế (nghiêm trọng).


2
theo như tôi có thể nói, tất cả các phiên bản Windows kể từ XP, có thể mở tệp zip một cách tự nhiên bằng cách sử dụng tệp explorern
Lie Ryan

22
@ new123456 Trên OpenBSD, gzip nằm trong hệ thống cơ sở nhưng bzip2 phải được cài đặt từ một gói. Nhiều bộ định tuyến * WRT bao gồm gzip nhưng không phải là bzip2.
Gilles

2
@Gilles Tôi có thể xác nhận rằng Bản phát hành DD-WRT của tôi: 08/12/10 (bản sửa đổi SVN: 14929) không có bzip2, nhưng không có gzip.
Urda

9
@mlainz Nghiên cứu ban đầu. Đây không phải là Wikipedia.
Gilles

2
nó dường như đã biến mất hoàn toàn - Plain cũ bzipbiến mất vì nó đang sử dụng mã hóa thuật toán được cấp bằng sáng chế. Vì bằng sáng chế, nó đã được thiết kế lại để sử dụng mã Huffman thay thế. Trong quá trình thiết kế lại này, các tính năng và cải tiến mới đã được thêm vào. Điều cơ bản làm cho nó trở thành một thuật toán nén duy nhất, mặc dù, biến đổi Burrows của Wheeler, vẫn giữ nguyên trong cả hai phiên bản.
rừng

24

Theo như tôi có thể nói, gzip nói chung nhanh hơn, trong khi tổng thể bzip tạo ra khả năng nén (nhỏ hơn) tốt hơn.


Ngoài ra, gzip dường như được hỗ trợ tốt hơn một chút, đặc biệt là trên Windows ..
Dentrasi

5
@Dentrasi: winrar / 7zip hỗ trợ cả hai, vấn đề là gì?
Whitequark

@whitequark: được hỗ trợ rộng rãi chủ yếu là quan trọng đối với unix vì người dùng có thể không có quyền truy cập root và phải làm việc với những gì đã được cài đặt. Cũng áp dụng cho các môi trường Windows nơi người dùng không có quyền truy cập quản trị viên (trường học / thư viện / v.v.).
Matthew

4
@Matthew, bạn không cần quyền quản trị để sử dụng nhiều phần mềm miễn phí được chuyển, bao gồm 7zip.
Whitequark

1
@IQAndreas: một số điểm chuẩn: 1 , 2 , 3
Lie Ryan

5

Các thuật toán có thời gian, bộ nhớ, sự đánh đổi không gian khác nhau. Hãy nhớ rằng các thuật toán này đã được viết cách đây khá lâu và điện thoại thông minh của bạn có CPU nhiều gấp nhiều lần so với máy tính để bàn ngày đó.

Lựa chọn của bạn là giữa tính phổ quát (.gz) và nén hơn một chút (.bz2). Chỉ có bạn có thể nói mà bạn quan tâm nhiều hơn.

Một lợi thế của .gz là nó có thể nén một luồng, một chuỗi mà bạn không thể nhìn ra phía sau. Điều này làm cho nó trở thành máy nén chính thức của các luồng http. Tôi cần sử dụng gzip một lần vì điều đó, nhưng không chắc bạn sẽ cần phải nghĩ về nó.


4

Dưới đây là danh sách các trang web kiểm tra thuật toán nén, để tìm chỉ bzip và gzip, bạn sẽ phải thực hiện một số hoạt động đào, nhưng hầu hết các trang web sẽ liệt kê các đặc điểm của thuật toán. Bằng cách này bạn có thể so sánh những gì quan trọng với bạn, kích thước (tỷ lệ nén), thời gian, bộ nhớ, cpu.
http://www.maximumcompression.com/benchmark/benchmark.php


1

Theo kinh nghiệm của tôi, bzip đã cung cấp tỷ lệ nén tốt hơn so với gzip. Cộng với 7zip là trình quản lý và thuật toán bzip, 7zip có thể sử dụng bộ xử lý đa lõi.


1

Mỗi http://tukaani.org/lzma/benchmark.html , gzip nén nhanh gấp đôi so với bzip2 và giải nén nhanh gấp mười lần.

Ví dụ: để sử dụng với bộ nhớ đệm s3, trên travis, v.v., nơi bạn muốn tốc độ nén / giải nén, không chỉ kích thước nhỏ, gzip có thể là một sự đánh đổi tố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.