ti-enxame.com

Qual formato de arquivo / compressão?

Zip, rar, 7z, gzip, bzip2, alcatrão etc. Estou ouvindo 7z é o sabor do mês, por quê? É melhor para todas as situações ou há melhores escolhas para situações específicas.

Ou talvez o arquivador de arquivo real ie winzip, winrar, 7zip etc (em oposição ao formato) tem um efeito maior?

Na sua resposta você poderia descrever que tipo de troca de velocidade/compactação seu formato mencionado usa.

Por favor, forneça links para quaisquer testes empíricos que faça o backup da sua resposta.

Background: Eu preciso fazer backup de um índice de pesquisa personalizado que cria cerca de 3000 arquivos relativamente pequenos (menos 10MB), cada um contendo muitos dados repetitivos.

(Como a Wikipedia usual tem um artigo relevante mas a seção sobre comparação de desempenho é breve.)

Obrigado

8
Ash

Compress, GZip, Bzip, Bzip2 não são para arquivar vários arquivos. Eles só compressam um arquivo único. Para arquivar, eles geralmente são usados ​​com alcatrão. O problema com tar é que ele tem Nenhuma tabela de índice . É bom se você estiver planejando restaurar o inteiro coisa. Se você está esperando que você precise restaurar apenas um número limitado de arquivos selecionados, esqueça o alcatrão. Para obter o último arquivo de tar.gz ou tar.bz2 Arquivo, você tem que descompactar e processar Tudo . No caso do Zip, RAR ou 7-Zip, irá para a tabela de índice, pular para a posição relevante do arquivo e apenas processam arquivos relevantes.

Ok, Tar está fora, então isso deixa você com Zip, RAR e 7-Zip. Destes três, o Zip é o mais proliferado, a maioria de tudo o suporta, muitas aplicações têm suporte integrado. E é rápido. Por outro lado, o 7-Zip também é portátil, a biblioteca é LGPL e tem taxas de compactação muito melhores que outras duas, provêm um custo de ser mais consumidor da CPU. Rar é real perdedor lá, nem grande compressão, nem realmente portátil, nem rápido.

EDIT: Parece que a melhor opção seria 7-zip, mas com o método de compressão Bzip2. Desta forma, você não terá as desvantagens do alcatrão, mas ainda poderá aproveitar o suporte multi-core bzip2. Veja este artigo.

14
vartec

Leitura recomendada:

Compressão de arquivo na era multi-core (Jeff Atwood A.K.A. Codinghorror, fevereiro de 2009)

Eu tenho jogado um pouco com a compactação de arquivo novamente, à medida que geramos alguns arquivos de backup muito grandes diariamente no estouro de pilha.

Estamos usando a última versão de 64 bits do 7ZIP (4.64) no nosso servidor de banco de dados. Eu não sou um grande fã de mais do que o núcleo dual na área de trabalho, mas é um acéfalo para servidores. Quanto mais CPU núcleos o Merrier! Este servidor tem duas CPUs quad-core, um total de 8 núcleos, e eu estava um pouco desanimado para descobrir que nenhum dos dois rar nem 7zip parecia fazer muito mais de 2.

Ainda assim, mesmo que use apenas 2 núcleos para comprimir, o algoritmo 7zip é incrivelmente eficaz e evoluiu nos últimos anos para ser respeitável. Eu costumava recomendar rar sobre o zip, mas dado a maior eficiência de 7zip e o fato de que é livre e rar não é, é a escolha lógica agora.

E em relação aos algoritmos:

Por que Bzip2 é capaz de trabalhar muito mais rápido que 7zip? [...] Bzip2 usa mais de 2 núcleos de CPU para paralelizar seu trabalho.

10
splattne

LZMA parece se apresentar muito bem em proporção de compressão e velocidade.

A seguir http://tukaani.org/lzma/benchmarks Benchmarks A configuração mais rápida para LZMA deu tempos de compactação consideravelmente mais rápida do que a opção Bzip2 mais rápida, enquanto ainda dando compressão melhor do que a opção BZip2 mais lenta:

 ratio bzip2 lzmash 
 Mais rápido 35,8% 31,7% [.____] mais lento 34.0% 25,4% 
 Tempo Bzip2 LzMash 
 Mais rápido 1M 26s 0m 58s [.____] 2m 37s 12m 20s 
 * Comprimindo a instalação completa do OpenOffice.org 1.1.4 para Linux (203 MB) 

Ele realiza especialmente bem com dados binários, mas acho que leio alguns benchmarks de texto simples onde o Bzip2 superou.

A página do homem Lzma vale a pena ler:

   lzma  provides  notably  better compression ratio than bzip2 especially
   with files having other than plain text content. The other advantage of
   lzma  is fast decompression which is many times quicker than bzip2. The
   major disadvantage is that achieving  the  highest  compression  ratios
   requires  extensive  amount of system resources, both CPU time and RAM.
   Also software to handle LZMA  compressed  files  is  not  installed  by
   default on most distributions.
3
Guy C

Dê uma olhada neste entrada da Wikipedia . Para o fundo, "comparação de eficiência". Ele lhe dará porcentagem de compressão e o tempo gasto, aproximadamente. Todos os números variam (velocidade sábio) com base na velocidade da máquina que está sendo usada, a quantidade de memória, etc.

Mais benchmarks de compressão:

2
user1797

Acabei de instalar DAR (mas não tive a chance de brincar com isso ainda). É semelhante ao alcatrão com compressão gzip ou bzip2, com a capacidade adicional de dividir o arquivo em várias partes, e calcular a paridade para que, se uma ou mais peças forem corrompidas, ela poderá ser reconstruída a partir dos arquivos de paridade.

0
pgs