Devo usar a compactação xz ou lzma?

Respostas:

12

Este benchmark fornece algumas boas informações sobre esse problema. Parece que o LZMA possui taxas de compressão e desempenho ligeiramente melhores que o XZ, mas o XZ é geralmente preferido devido a "razões práticas" (não sei ao certo quais são).

XZ é uma implementação do algoritmo lzma2 e é melhor na compactação de dados 'não compactáveis':

lzma2 é o método de compressão empregado pelo compressor 7-Zip LZMA2. O LZMA2 é uma versão modificada do LZMA que oferece uma melhor taxa de compactação para dados não compactáveis ​​(dados aleatórios aumentam cerca de 0,005%, em comparação com 1,35% no LZMA original) e, opcionalmente, pode compactar várias partes de arquivos grandes em paralelo, aumentando bastante a velocidade de compactação, mas com uma possível redução na taxa de compactação (consulte LZMANumBlockThreads). Como o LZMA, ele pode consumir muita memória; veja a tabela acima. Se um nível de compactação não for especificado, o padrão será máx.

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

Você deve estar bem usando qualquer um.

dv3500ea
fonte
Por curiosidade, você decidiu qual usar?
dv3500ea
11
Na verdade, depois de alguns testes, parece que xz será o caminho a seguir. Ele também economiza bastante compactação (10mb às vezes) em coisas binárias sobre o lzma.
NightwishFan
8
Essa não foi uma resposta apropriada, no que diz respeito a "OK usando qualquer um". Mesmo no momento em que ele postou essa pergunta, os arquivos .lzma eram substituídos por .xz em um futuro próximo. O autor do LZMA-Utils disse publicamente que eles foram descontinuados e usam o xz-utils a partir das 5.00 em diante. A última versão do LZMA-Utils foi 30/07/2008, mesmo na época com anos. Portanto, em termos de compactação, as melhorias podem não ser um grande fator determinante. (ironicamente, no caso). Mas razões "políticas" deveriam ter sido uma razão significativa para usar o XZ-Utils e evitar criar novos arquivos .lzma.
JM Becker
11
@TechZilla Você já pensou em postar sua opinião sobre isso como uma resposta alternativa?
Octndrük
11
Os motivos práticos para o LZMA2 são o suporte a multithreading. O desempenho de encadeamento único e a taxa de compactação são um pouco menores, mas em um sistema com vários núcleos usados, o LZMA2 espera ser muito mais rápido ao decodificar.
Jonathan Baldwin
42

Não concordo com a conclusão de @ dv3500ea, "OK usando qualquer um", pois era inadequado. Mesmo na data / hora da .lzmapostagem , sabia-se que os arquivos eram completamente substituídos por .xz. O autor de ambos os Utils disse publicamente que os usuários devem fazer a transição para o XZ-Utils ≥ 5.00. A última versão do LZMA-Utils foi 30/07/2008 e foi descontinuada.

LZMA Utils é um software legado de compactação de dados com alta taxa de compactação. Os LZMA Utils não são mais desenvolvidos, embora os erros críticos possam ser corrigidos, desde que corrigi-los não exija grandes alterações no código.

Os usuários do LZMA Utils devem passar para o XZ Utils. O XZ Utils suporta o .lzmaformato herdado usado pelo LZMA Utils e também pode emular as ferramentas de linha de comando do LZMA Utils. Isso deve facilitar a transição do LZMA Utils para o XZ Utils.

O fator determinante pode não ser a compressão, embora ironicamente tenha sido para este exemplo. "razões práticas" são uma razão evidente e significativa para usar o XZ-Utils. Além disso, o .xzformato permite especificar algoritmos de compressão e filtros, para que os .xzarquivos possam usar LZMA ou LZMA2. Evite criar novos .lzmaarquivos, eles são considerados um formato herdado.

Quanto a manter o LZMA-Utils por perto: não. XZ-Utils tem suporte para .lzmaarquivos legados . Ele também possui wrappers para scripts que ainda usam LZMA-Utils. Se todos esses motivos ainda fossem insuficientes, o Ubuntu retirou o lzma-utils herdado de seu repositório.

JM Becker
fonte
11
"O autor dos dois Utils disse publicamente que os usuários devem fazer a transição para o XZ-Utils ≥ 5.00". Citação necessária. :-)
Faheem Mitha
@FaheemMitha: Como se trata de um post, e não uma referência educacional ou pesquisa original, a citação seria apenas a página do projeto. Supus que, como era do autor do LZMA-Utils, e ele escreveu AMBOS conjuntos de utilitários com a intenção de o xz-utils substituir o LZMA-Utils legado, isso era evidente. ... Mas para quem quiser obter mais detalhes, tukaani.org/lzma .
JM Becker
3

Definitivamente você não deve usar o lzma como outros dizem.

Antonio Diaz Diaz, autor do formato lzip, diz que o formato Xz é inadequado para o arquivamento a longo prazo . Se você deseja fazer backup de seus arquivos importantes, considere outros formatos de arquivo, como o bzip2, que possui uma ferramenta de recuperação de corrupção.

critabug
fonte
xz é considerado inseguro por alguns. Isso não se aplica ao lzma.
oᴉɹǝɥɔ
0

xz é o preferido devido a ter a maior taxa de compactação. No entanto, ele comprime mais devagar, mas compensa isso com sua compactação.

Gráficos distantes
fonte