Quale metodo di archiviazione è migliore per comprimere i file di testo su Linux?


16

Nella mia applicazione ho bisogno di comprimere i log che sono file di testo.

Sembra che bzip2e gziphanno lo stesso rapporto di compressione.

È corretto?


xz (da xz-tools o 7z da p7zip, è molto simile a lzma) è il migliore. bzip2 è meglio di gzip.
Osgx,

Risposte:


4

Normalmente, bz2 ha un miglior rapporto di compressione, combinato con migliori caratteristiche di recuperabilità.

OTOH, gz è più veloce.

Si dice che xz sia persino migliore di bz2, ma non conosco il comportamento dei tempi.


xz è più lento di bzip2.
Osgx,

xz non è solo più lento, ma molto più lento, il file da 300 mb ha impiegato circa 30 secondi per comprimere bzip2. Ho ucciso xz dopo che era stato compresso per più di 5 minuti
Tebe

@ Копать_Шо_я_нашел Penso che dipenda fortemente dal livello di compressione che scegli. Con -1, non è così lento, ma con le impostazioni predefinite, tende ad essere abbastanza lento.
glglgl

7

L'ultimo aggiornamento di maximumcompression.com è giugno-2011 (risposta aggiornata a ottobre-2015)
Pertanto questo sito Web non menziona
l'attuale compressore di testi campione in tutto il mondo :

      cmix

Concorsi / Benchmark:

Dettagli:
Byron Knoll si sta attivamente sviluppando cmixcome software libre (GPL) dal 2013 basato sul libro Data Compression Explained di Matt Mahoney . Matt Mahoney mantiene anche alcuni dei parametri sopra citati e propone ZPAQ ( WP ), un archiviatore incrementale da riga di comando.


Se preferisci uno strumento più standard (richiede meno RAM) ti consiglio:

      lrzip

lrzipè un'evoluzione del rzipby Con Kolivas .
lrzipsta per due nomi: Long Range ZIP e Lzma RZIP .
lrzipè spesso migliore di xz(un altro strumento di compressione popolare).
Anche Alexander Riccio raccomanda lrzip.


Il mio preferito è:

      zpaq

L ' "esperto di archiviazione" , Matt Mahoney , ha lavorato intensamente sugli algoritmi PAQ per dieci anni e offre il miglior compromesso tra risorse CPU / memoria e livello di compressione.

Tuttavia, l' ultima zpaqversione non è spesso impacchettata / disponibile nella recente distribuzione :-( La
compilo sempre da fonti quando ho una nuova macchina e ho bisogno di un ottimo compressore: 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

Ho fatto un punto di riferimento per test per comprimere la seguente:
cartella di 204MB (con i file HTML) 1.600
risultati

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

quindi il 7zip è il migliore tra questi puoi ottenerlo da qui
http://www.7-zip.org/


0

bz2 ha una compressione più stretta, l'algoritmo ha più opzioni per cercare la ridondanza da comprimere.

gzip ha molti più strumenti ed è più multipiattaforma. Più strumenti di Windows possono gestire i file .gz. Fa parte di http, quindi anche i browser web possono capirlo.

Su Linux, ci sono strumenti che ti consentono di lavorare direttamente sui file compressi. zgrep e bzgrep possono cercare nei file compressi.

Se solo su Linux, userei bzip2, per rapporti di compressione leggermente migliori.


0

xz comprime molto meglio di bz2, ma richiede più tempo. Quindi, se la massima compressione è il tuo obiettivo e lo spazio sul tuo disco rigido è un premio (che è il mio caso con un'unità piena al 98% - mentre riorganizzo i miei file system), e puoi eseguire uno script per fare il lavoro - fai una pausa e torna tra 5 minuti.

unxz è molto veloce da decomprimere nella mia esperienza, il che è una buona cosa per me ogni giorno.

bz2 è più veloce da comprimere di xz, ma non sembra ottenere i risultati di compressione di xz.

L'unico modo per effettuare queste valutazioni è eseguire benchmark rispetto a un mix di file comuni che normalmente comprimere / decomprimere e variare i parametri per vedere quale risulta migliore.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.