Plusy i minusy bzip vs gzip?


122

Znam gzip od lat, ostatnio widziałem, jak bzip jest używany w pracy. Czy są one zasadniczo równoważne, czy też są znaczące zalety i wady jednego z nich w stosunku do drugiego?


2
Chociaż jest to stare pytanie z prawidłową i poprawną odpowiedzią, chciałbym wskazać ludziom ten wynik wyszukiwania w Google: tukaani.org/lzma/benchmarks.html, ponieważ powoduje on dalsze jego rozkładanie
Angry 84

Czy bzip do kompresji i gzip do archiwizacji?
juniorRubyist

Źródło @juniorRubyist?
ripper234

Właśnie to usłyszałem. Zapomniałem gdzie.
juniorRubyist

Brak wzmianki o losowym dostępie? stackoverflow.com/questions/14225751/…
neverMind9

Odpowiedzi:


147

Gzip i bzip2 są funkcjonalnie równoważne. (Był kiedyś bzip, ale wydaje się, że całkowicie zniknął z powierzchni świata.) Inne popularne formaty kompresji to zip, rar i 7z; te trzy wykonują zarówno kompresję, jak i archiwizację (pakowanie wielu plików w jeden). Oto niektóre typowe oceny pod względem szybkości, dostępności i typowego współczynnika kompresji (zauważ, że te oceny są nieco subiektywne, nie traktuj ich jako ewangelii):

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

Jak widać, nie ma wyraźnego zwycięzcy. Jeśli chcesz polegać na programach, które prawdopodobnie zostaną już zainstalowane, użyj zipa w systemie Windows (lub, jeśli to możliwe, samorozpakowujących się archiwów, ponieważ Windows nie jest dostarczany z żadnym z nich) i gzip na Uniksie. Jeśli chcesz maksymalnej kompresji, użyj 7z.

Rar ma również wadę, o ile mi wiadomo, nie ma wolnego oprogramowania, które tworzy archiwa rar lub które mogłoby rozpakować wszystkie archiwa rar. Inne formaty mają darmowe wdrożenia i nie mają (poważnych) roszczeń patentowych.


2
o ile wiem, wszystkie wersje systemu Windows od XP mogą otwierać plik zip natywnie za pomocą eksploratora plików
Lie Ryan

22
@ new123456 W OpenBSD gzip jest w systemie podstawowym, ale bzip2 musi być zainstalowany z pakietu. Wiele routerów * WRT zawiera gzip, ale nie bzip2.
Gilles,

2
@Gilles Mogę potwierdzić, że moje wydanie DD-WRT: 08/12/10 (wersja SVN: 14929) nie ma bzip2, ale ma gzip.
Urda

11
@mlainz Oryginalne badania. To nie jest Wikipedia.
Gilles

3
wydaje się, że całkowicie zniknął - Zwykły stary bzipzniknął, ponieważ korzystał z opatentowanego kodowania algorytmicznego. Ze względu na patent został przeprojektowany, aby zamiast niego używać kodowania Huffmana. Podczas tego przeprojektowywania dodano nowe funkcje i ulepszenia. Podstawowa rzecz, która czyni go unikalnym algorytmem kompresji, transformacja Burrowsa-Wheelera, pozostała taka sama w obu wersjach.
las

24

O ile wiem, gzip jest ogólnie szybszy, podczas gdy bzip ogólnie zapewnia lepszą (mniejszą) kompresję.


Ponadto gzip wydaje się być nieco lepiej obsługiwany, szczególnie w systemie Windows ..
Dentrasi

5
@Dentrasi: obsługa winrar / 7zip, jaki jest problem?
whitequark

@whitequark: szerokie wsparcie jest szczególnie ważne dla Uniksa, ponieważ użytkownicy mogą nie mieć dostępu do konta root i muszą pracować z tym, co jest już zainstalowane. Dotyczy to również środowisk Windows, w których użytkownik nie ma dostępu administratora (szkoły / biblioteki / itp.).
Matthew

4
@Matthew, nie potrzebujesz uprawnień administratora, aby korzystać z dużej ilości darmowego oprogramowania, w tym 7zip.
whitequark

1
@IQAndreas: niektóre testy porównawcze: 1 , 2 , 3
Lie Ryan

5

Algorytmy mają różne kompromisy czasowe, pamięciowe i przestrzenne. Pamiętaj, że te algorytmy zostały napisane już dawno temu, a Twój smartfon ma wiele razy więcej procesora niż komputery stacjonarne tamtych czasów.

Możesz wybrać między uniwersalnością (.gz) a nieco większą kompresją (.bz2). Tylko Ty możesz powiedzieć, na czym Ci zależy.

Jedną z zalet .gz jest to, że może kompresować strumień - sekwencję, w której nie można się obejrzeć. To sprawia, że ​​jest to oficjalny kompresor strumieni HTTP. Musiałem raz użyć gzip z tego powodu, ale mało prawdopodobne, że będziesz musiał o tym pomyśleć.



1

Z mojego doświadczenia wynika, że ​​bzip oferuje konsekwentnie lepsze współczynniki kompresji niż gzip. Plus z 7zip jako menedżerem i algorytmem bzip, 7zip może korzystać z procesorów wielordzeniowych.


1

Według http://tukaani.org/lzma/benchmarks.html gzip kompresuje się dwa razy szybciej niż bzip2, a dekompresuje dziesięć razy szybciej.

Np. Do użytku z buforowaniem s3, na travis itp., Gdzie chcesz prędkości kompresji / dekompresji, a nie tylko małych rozmiarów, gzip może być dobrym kompromisem.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.