Dovrei usare la compressione xz o lzma?


Risposte:


12

Questo benchmark fornisce alcune buone informazioni su questo problema. Sembra che LZMA abbia rapporti di compressione e prestazioni leggermente migliori rispetto a XZ, ma XZ è generalmente preferito a causa di "ragioni pratiche" (non sono sicuro di cosa si tratti).

XZ è un'implementazione dell'algoritmo lzma2 ed è più efficace nel comprimere dati "non comprimibili":

lzma2 è il metodo di compressione utilizzato dal compressore LZMA2 a 7 zip. LZMA2 è una versione modificata di LZMA che offre un rapporto di compressione migliore per i dati non comprimibili (i dati casuali si espandono di circa lo 0,005%, rispetto all'1,35% con LZMA originale) e facoltativamente possono comprimere più parti di file di grandi dimensioni in parallelo, aumentando notevolmente la velocità di compressione ma con una possibile riduzione del rapporto di compressione (vedi LZMANumBlockThreads). Come LZMA, può consumare molta memoria; vedi la tabella sopra. Se non viene specificato un livello di compressione, il valore predefinito è max.

( http://www.jrsoftware.org/ishelp/index.php?topic=setup_compression )

Dovresti stare bene usando entrambi.


Per curiosità, hai deciso quale usare?
dv3500ea,

1
In realtà dopo un po 'di test sembra che xz sarà la strada da percorrere. Inoltre, consente di risparmiare un po 'di compressione (a volte 10 MB) su cose binarie su lzma.
NightwishFan

8
Quella non era una risposta appropriata, per quanto riguarda "OK usando entrambi". Anche nel momento in cui ha pubblicato questa domanda, i file .lzma erano noti per essere sostituiti completamente da .xz nel prossimo futuro. L'autore di LZMA-Utils ha dichiarato pubblicamente che sono stati deprecati e usano xz-utils dalle 5.00 in poi. L'ultima versione di LZMA-Utils è stata il 30/07/2008, anche a quel tempo. Quindi, per quanto riguarda la compressione, i miglioramenti potrebbero non essere un fattore determinante enorme. (ironicamente nel caso fosse) Ma le ragioni "politiche" avrebbero dovuto essere un motivo significativo per usare XZ-Utils, ed evitare di creare nuovi archivi .lzma.
JM Becker,

1
@TechZilla Hai considerato di pubblicare la tua opinione su questo come una risposta alternativa?
ændrük,

1
Le ragioni pratiche di LZMA2 sono il supporto multithreading. Le prestazioni di threading singolo e il rapporto di compressione sono leggermente inferiori, ma su un sistema con più core utilizzati ci si aspetta che LZMA2 sia molto più veloce durante la decodifica.
Jonathan Baldwin,

42

Non sono d'accordo con la conclusione di @ dv3500ea, "OK usando entrambi", poiché era inappropriato. Anche alla data / ora pubblicata, i .lzmafile erano noti per essere sostituiti completamente da .xz. L'autore di entrambi gli utensili ha dichiarato pubblicamente che gli utenti dovrebbero passare a XZ-Utils ≥ 5.00. L'ultima versione di LZMA-Utils è stata il 30/07/2008 e non è più disponibile.

LZMA Utils è un software di compressione dati legacy con un elevato rapporto di compressione. Gli utensili LZMA non sono più sviluppati, anche se i bug critici possono essere corretti purché non siano necessari cambiamenti enormi nel codice.

Gli utenti di LZMA Utils devono passare a XZ Utils. XZ Utils supporta il .lzmaformato legacy utilizzato da LZMA Utils e può anche emulare gli strumenti da riga di comando di LZMA Utils. Ciò dovrebbe rendere relativamente semplice la transizione dagli utensili LZMA agli utensili XZ.

Il fattore determinante potrebbe non essere la compressione, sebbene ironicamente lo fosse per questo esempio. le "ragioni pratiche" sono una ragione evidente e significativa per usare XZ-Utils. Inoltre, il .xzformato consente di specificare algoritmi e filtri di compressione, in modo che i .xzfile possano utilizzare LZMA o LZMA2. Evita di creare nuovi .lzmafile, sono considerati un formato legacy.

Per quanto riguarda persino tenere in giro LZMA-Utils: no. XZ-Utils ha il supporto per i .lzmafile legacy . Ha anche wrapper per gli script che usano ancora LZMA-Utils. Se tutte queste ragioni fossero ancora insufficienti, Ubuntu ha eliminato lzma-utils legacy dal suo repository.


1
"L'autore di entrambi gli utensili ha dichiarato pubblicamente che gli utenti dovrebbero passare a XZ-Utils ≥ 5,00". Citazione necessaria. :-)
Faheem Mitha,

@FaheemMitha: Dal momento che questo è un post, e non un riferimento educativo o una ricerca originale, la citazione sarebbe solo la pagina del progetto. Ho assunto dal momento che proveniva dall'autore di LZMA-Utils, e ha scritto ENTRAMBI i set di utilità con l'intenzione di xz-utils che sostituiscono l'eredità LZMA-Utils, era evidente. ... Ma per chiunque voglia ottenere maggiori dettagli, tukaani.org/lzma .
JM Becker,

3

Sicuramente non dovresti usare lzma come dicono gli altri.

Antonio Diaz Diaz, autore del formato lzip, afferma che il formato Xz è inadeguato per l'archiviazione a lungo termine . Se si desidera eseguire il backup dei file importanti, prendere in considerazione altri formati di file come bzip2, che dispone di uno strumento di ripristino della corruzione.


xz è considerato non sicuro da alcuni. Questo non si applica a lzma però.
oᴉɹǝɥɔ

0

xz è preferito perché ha il più alto tasso di compressione. Tuttavia, si comprime più lentamente, ma compensa con la sua compressione.

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.