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?

ripper234
źródło
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.

Gilles
źródło
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ę.

Lie Ryan
źródło
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ć.

Rich Homolka
źródło
4

Oto lista witryn testujących algorytmy kompresji. Aby znaleźć tylko bzip i gzip, musisz wykonać kopanie, ale większość witryn będzie zawierać listę cech algorytmów. W ten sposób możesz porównać to, co jest dla Ciebie ważne, rozmiar (współczynnik kompresji), czas, pamięć, procesor.
http://www.maximumcompression.com/benchmarks/benchmarks.php

Scott McClenning
źródło
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.

Sathyajith Bhat
źródło
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.

Hugh Perkins
źródło