Entre xz, gzip e bzip2, qual algoritmo de compressão é o mais eficiente?

13

Entre xz, gzip e bzip2, qual algoritmo de compactação fornece o menor tamanho de arquivo e a velocidade mais rápida ao compactar tarballs razoavelmente grandes?

    
por Nathan2055 10.04.2013 / 20:42

3 respostas

11

No meu teste de estresse, eu comprimi 464 megabytes de dados usando os três formatos listados. O Gzip retornou um arquivo de 364 MB. O Bzip2 retornou um arquivo de 315 MB. Xz retornou um arquivo de 254 MB. Eu também fiz um teste de velocidade simples:

Compressão:

1: Gzip

2: Xz

3: Bzip2 (meu ventilador estava explodindo um pouco enquanto isso estava acontecendo, indicando que meu Athlon II estava bastante tenso)

Descompressão:

1: Xz

2: Gzip

3: Bzip2

Por favor, note que todos esses testes foram feitos com a última versão do 7-Zip.

Xz é o melhor formato para compressão completa, enquanto o Gzip é muito bom para velocidade. O Bzip2 é decente por sua taxa de compactação, embora o xz provavelmente deva ser usado em seu lugar.

    
por 10.04.2013 / 20:42
3

Eu fiz meu próprio benchmark na imagem vmdk da instalação do Linux de 1.1GB:

rar    =260MB   comp= 85s   decomp= 5s
7z(p7z)=269MB   comp= 98s   decomp=15s
tar.xz =288MB   comp=400s   decomp=30s
tar.bz2=382MB   comp= 91s   decomp=70s
tar.gz =421MB   comp=181s   decomp= 5s

todos os níveis de compactação no máximo, CPU Intel I7 3740QM, memória 32GB 1600, origem e destino no disco RAM

Geralmente uso rar ou 7z para arquivar arquivos normais, como documentos.
e para arquivar arquivos do sistema eu uso .tar.gz ou .tar.xz pelo file-roller ou tar com opções -z ou -J junto com --preserve para compactar nativamente com as permissões tar e preserve (também alternativamente .tar.7z ou .tar.rar pode ser usado)

update: como o tar preserva apenas permissões normais e não ACLs, também é possível usar o .7z mais backup e restaurar permissões e ACLs manualmente via getfacl e sefacl, o que parece ser a melhor opção para arquivamento de arquivos ou backup de arquivos do sistema ele preservará totalmente as permissões e as ACLs, terá soma de verificação, teste de integridade e capacidade de criptografia; a única desvantagem é que o p7zip não está disponível em todos os lugares

    
por 18.09.2014 / 06:58
1

Acho que este artigo fornece resultados muito interessantes.

link

Os formatos mais eficientes são xz e lzma, ambos com o parâmetro -e passado.

O algoritmo mais rápido é, de longe, o lzop e o lz4, que podem produzir um nível de compressão não muito distante do gzip em 1.3 segundos, enquanto o gzip leva 8.1 segundos. A taxa de compressão é 2.8 para lz4 e 3.7 para gzip.

Aqui estão alguns resultados que extraí deste artigo:

  • Gzip: 8.1s @ 3.7

  • lz4: 1.3s @ 2.8

  • xz: 32.2s @ 5.43

  • xz -e: 6m40 @ 7.063

  • xz: 4m51s @ 7.063

Então, se você realmente precisa desesperadamente de velocidade, o lz4 é incrível e ainda fornece uma taxa de compactação 2.8.

Se você precisa desesperadamente poupar o byte, xz no nível máximo de compressão (9) faz o melhor trabalho para arquivos de texto como a fonte do kernel. No entanto, é muito longo e tem muita memória.

Um bom caso seja necessário para minimizar o impacto no tempo E o espaço é gzip. Este é o que eu usaria para fazer backups diários manuais de um ambiente de produção.

    
por 07.08.2014 / 19:16