Commenti
- Penso che tu debba impostare fai un semplice test e vedi quale programma di compressione è " migliore " per te. Nessun altro può dirtelo.
Rispondi
gzip
e xz
utilizza due diversi algoritmi e quindi si comportano in modo diverso, sia in termini di livello di compressione che raggiungono sia in termini di quantità di risorse che consumano durante la compressione o la decompressione.
In generale , xz
raggiunge rapporti di compressione più elevati, ma richiede molta più memoria e tempo.
Io personalmente utilizza xz
per larchiviazione dei dati; file di grandi dimensioni che devo conservare per molto tempo. Altrimenti uso gzip
, poiché di solito è più veloce.
Provale entrambi e guarda come si comportano sulla tua media tar
(o qualsiasi altra cosa) file.
Risposta
xz
è diventato un po uno standard quando si tratta di gestione dei pacchetti negli ultimi anni.
lalgoritmo di compressione LZMA2 utilizzato da xz
è eccezionalmente efficiente con dati di testo (e “simili al testo”). Personalmente lo uso praticamente per qualsiasi cosa, dove la velocità di codifica computazionale non è un problema (xz
decomprime molto più veloce della compressione, in realtà è uno dei suoi obiettivi di progettazione).
Quindi è ottimo per cose come larchiviazione o il backup (in generale, i file che vengono decompressi molto, ma dove i dati non vengono sempre compressi o modificati, ecc.). Non è una grande decisione per la compressione del flusso – almeno non così spesso, perché LZMA2 non è esattamente leggero sulle risorse, durante la compressione.
Ma mi piacerebbe commentare unaltra affermazione dei tuoi: “should”. Quello che dovresti o non dovresti usare dipende da cosa ti servono i tuoi dati. Anche se xz
e LZMA2 esiste da anni, le persone considerano ancora la compressione con gz
come alternativa per motivi di compatibilità. Cose come Trac o cgit offrono .tar.gz
, .7z
e .tar.xz
. Con lopzione .tar.gz
presente, perché è stata “in giro da sempre” e ” è una buona misura di ripiego su qualsiasi tipo di dispositivo, non importa quanto piccolo o vecchio.
Proprio come un contro esempio, lzop
è un veloce e risparmio di risorse compressore, che viene spesso utilizzato su veicoli spaziali, ma per il resto non molto efficiente. Tuttavia, non potrei dire che non sia ampiamente utilizzato. Viene spesso utilizzato su sistemi in cui è più importante comprimere rapidamente qualcosa con poca potenza e poco spazio di elaborazione.
Quindi, ciò che dovresti o non dovresti usare, è ciò che ha più senso per te e le persone che interagiscono con i tuoi dati.
Una cosa che mi è venuta in mente di recente: le pagine man
vengono regolarmente compresse con gzip
. Se esamini /usr/share/man/man1/
, ad esempio, “vedrai molti file simili a mv.1.gz
, se non tutti sono compressi . Ora, avrebbe probabilmente senso passare ai file .xz
a causa della migliore compressione, ma i guadagni di spazio sono minimi, rispetto agli effetti negativi dellabbandono di .gz
per .xz
. Il motivo è la compatibilità quasi universale. Anche aprendo i file compressi .gz
direttamente in Vim funziona bene e funge da compressione trasparente.
Risposta
Il formato .xz
fornisce un paio di funzionalità avanzate. Allo stesso tempo, è stato mantenuto abbastanza semplice da essere utilizzabile in molti sistemi incorporati. Ecco un riepilogo delle funzionalità:
- Lettura ad accesso casuale: i dati possono essere suddivisi in blocchi compressi indipendentemente. Ogni contiene un indice dei blocchi, che rende possibile una lettura ad accesso casuale limitato quando la dimensione del blocco è abbastanza piccola.
- Controlli di integrità: lintegrità di tutte le intestazioni è sempre protetta con CRC32 . Lintegrità dei dati effettivi può essere verificata con CRC32, CRC64, SHA-256 …
- Concatenazione: proprio come con i file
.gz
e.bz2
, è possibile concatenare.xz
così come sono. Il decompressore può decomprimere un file concatenato come se fosse un normale file.xz
a flusso singolo. - Riempimento: gli zeri binari possono essere aggiunti a
.xz
file per riempirli per riempirli ad es un blocco su un nastro di backup. Il riempimento deve essere multiplo di quattro byte, perché la dimensione di ogni file.xz
valido è un multiplo di quattro byte.