Która metoda archiwizacji jest lepsza do kompresji plików tekstowych w systemie Linux?


17

W mojej aplikacji muszę kompresować logi, które są plikami tekstowymi.

Wydaje się, że bzip2i gzipmają ten sam współczynnik kompresji.

Czy to jest poprawne?


xz (z narzędzi xz lub 7z z p7zip, jest bardzo podobny do lzma) jest najlepszy. bzip2 jest lepszy niż gzip.
osgx,

Odpowiedzi:


5

Zwykle bz2 ma lepszy współczynnik kompresji w połączeniu z lepszymi funkcjami odzyskiwania.

OTOH, gz jest szybszy.

Mówi się, że xz jest nawet lepszy niż bz2, ale nie znam zachowania czasowego.


xz jest wolniejszy niż bzip2.
osgx,

xz jest nie tylko wolniejszy, ale także znacznie wolniejszy, kompresja pliku bzip2 zajęła około 30 sekund około 30 sekund. Zabiłem xz po tym, jak kompresował się przez ponad 5 minut
Tebe

@ Копать_Шо_я_нашел Myślę, że to zależy w dużym stopniu od wybranego poziomu kompresji. Dzięki -1nie jest tak bardzo powolny, ale przy ustawieniach domyślnych wydaje się być dość powolny.
glglgl,

7

Ostatnia aktualizacja witryny maximumcompression.com to czerwiec 2011 r. (Odpowiedź zaktualizowana w październiku 2015 r.)
Dlatego ta strona internetowa nie wspomina
o aktualnym kompresorze tekstowym na świecie :

      cmix

Konkursy / Benchmarki:

Szczegóły:
Byron Knoll aktywnie rozwija się cmixjako oprogramowanie libre (GPL) od 2013 roku w oparciu o książkę Data Compression Explained autorstwa Matta Mahoneya . Matt Mahoney utrzymuje również niektóre z powyższych testów porównawczych i proponuje ZPAQ ( WP ), przyrostowy archiwizator wiersza poleceń.


Jeśli wolisz bardziej standardowe narzędzie (wymagające mniej pamięci RAM), polecam:

      lrzip

lrzipJest to ewolucja rzipprzez Con Kolivas .
lrzipoznacza dwie nazwy: Long Range ZIP i Lzma RZIP .
lrzipjest często lepszy niż xz(inne popularne narzędzie do kompresji).
Alexander Riccio również zaleca lrzip.


Moim ulubionym jest:

      zpaq

„Ekspert archiwum” , Matt Mahoney , intensywnie pracował nad PAQ algorytmów przez dziesięć lat i zapewniają najlepszy kompromis pomiędzy CPU / zasobów pamięci i poziomu kompresji.

Jednak ostatnia zpaqwersja nie jest często spakowana / dostępna w ostatniej dystrybucji :-(
Zawsze kompiluję ją ze źródeł, kiedy mam nową maszynę i potrzebuję bardzo dobrego kompresora: https://github.com/zpaq/zpaq

clone https://github.com/zpaq/zpaq
cd zpaq
g++ -O3 -march=native -Dunix zpaq.cpp libzpaq.cpp -pthread -o zpaq


1

Zrobiłem odniesienia do testu do kompresji, co następuje:
folder, 204MB (z plików HTML) 1600
wyników

7zip =>     2.38 MB
winrar =>   49.5 MB
zip =>      50.8 MB
gzip =>     51.9 MB

więc 7zip jest najlepszy spośród nich, można go uzyskać tutaj
http://www.7-zip.org/


0

bz2 ma ściślejszą kompresję, algorytm ma więcej opcji szukania redundancji do skompresowania.

gzip jest w znacznie większej liczbie narzędzi i jest bardziej wieloplatformowy. Więcej narzędzi systemu Windows może obsługiwać pliki .gz. Jest częścią http, więc nawet przeglądarki internetowe mogą to zrozumieć.

W systemie Linux istnieją narzędzia, które pozwalają bezpośrednio pracować na skompresowanych plikach. zgrep i bzgrep mogą wyszukiwać w skompresowanych plikach.

Jeśli tylko na Linuksie, użyłbym bzip2, dla nieco lepszych współczynników kompresji.


0

xz kompresuje znacznie lepiej niż bz2, ale zajmuje więcej czasu. Tak więc, jeśli Twoim celem jest maksymalna kompresja, a miejsce na dysku twardym jest na wagę złota (tak jest w moim przypadku, gdy jeden dysk jest zapełniony w 98% - podczas gdy reorganizuję systemy plików), możesz uruchomić skrypt, aby wykonać pracę - zrób sobie przerwę i wróć za 5 minut.

Unxz bardzo szybko rozpakowuje się z mojego doświadczenia - co jest dla mnie dobre na co dzień.

bz2 jest szybszy do kompresji niż xz, ale wydaje się, że nie osiąga wyników kompresji xz.

Jedynym sposobem na dokonanie tych ocen jest uruchomienie testów porównawczych dla mieszanki typowych plików, które normalnie skompresowałbyś / zdekompresowałeś i zmienił parametry, aby zobaczyć, co wychodzi na wierzch.

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.