pt.phhsnews.com


pt.phhsnews.com / Por que o Zip é capaz de compactar arquivos simples melhor do que vários arquivos com o mesmo conteúdo?

Por que o Zip é capaz de compactar arquivos simples melhor do que vários arquivos com o mesmo conteúdo?


A capacidade de compactar nossos arquivos para facilitar o compartilhamento e / ou o transporte deles pode A vida electrónica é muito mais fácil, mas por vezes podemos ver resultados de tamanhos estranhos ou inesperados depois de os compactarmos. Por que é que? A postagem de perguntas e respostas do SuperUser de hoje tem as respostas para as perguntas de um leitor confuso.

A sessão de perguntas e respostas de hoje nos é oferecida por SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas.

Foto cedida por Jean-Etienne Minh-Duy Poirrier (Flickr).

A pergunta

SuperUser reader sixtyfootersdude quer saber porque o zip é capaz de compactar arquivos individuais melhor do que vários arquivos com o mesmo tipo de conteúdo:

Suponha que eu tem 10.000 arquivos XML e deseja enviá-los para um amigo. Antes de enviá-los, gostaria de compactá-los.

Método 1: Não compactá-los

Resultados:

Método 2: Compactar cada arquivo separadamente e enviá-lo 10.000 arquivos XML compactados

Comando:

Resultados:

Método 3: Criar um único arquivo Zip contendo todos os 10.000 arquivos XML

Comando:

Resultados:

Método 4: Concatenar os arquivos em um único arquivo e Zip It

Comando:

Resultados:

Perguntas

  • Por que obtenho resultados tão melhores quando estou apenas fechando um único arquivo?
  • Esperava obter resultados drasticamente melhores usando o método 3 em vez do método 2, mas não. Por que isso é
  • Este comportamento é específico para zip? Se eu tentasse usar o Gzip, obteria resultados diferentes?

Informações Adicionais

Meta Data

Uma das respostas dadas sugere que a diferença são os metadados do sistema armazenados no arquivo zip. Eu não acredito que isso possa ser o caso. Para testá-lo, fiz o seguinte:

O arquivo zip resultante é de 1,4 MB. Isso significa que ainda há aproximadamente dez MB de espaço inexplicado.

Por que o zip é capaz de compactar arquivos individuais melhor do que vários arquivos com o mesmo tipo de conteúdo?

Os colaboradores Alan Shutko e Aganju do SuperUser da Resposta

têm a resposta para nós. Primeiro, Alan Shutko:

A compactação Zip é baseada em padrões repetitivos nos dados a serem compactados, e a compactação fica melhor quanto mais tempo o arquivo estiver, pois mais e mais padrões podem ser encontrados e usados.

Simplificado, se você compactar um arquivo, o dicionário que mapeia códigos (curtos) para padrões (mais longos) é necessariamente contido em cada arquivo zip resultante; se você zipar um arquivo longo, o dicionário é reutilizado e se torna ainda mais eficaz em todo o conteúdo.

Se seus arquivos são um pouco parecidos (como o texto sempre é), a reutilização do 'dicionário' se torna muito eficiente. o resultado é um arquivo zip total muito menor.

Seguido pela resposta de Aganju:

Em zip, cada arquivo é compactado separadamente. O oposto é compactação sólida , ou seja, os arquivos são compactados juntos. 7-zip e Rar usam compactação sólida por padrão. Gzip e Bzip2 não podem comprimir múltiplos arquivos, então o Tar é usado primeiro, tendo o mesmo efeito da compressão sólida

Como os arquivos xml têm estrutura similar (e provavelmente conteúdo similar), se os arquivos forem compactados juntos a compressão será maior

Por exemplo, se um arquivo contiver a string “ ” e o compressor já encontrar essa string em outro arquivo, ele será substituído por um pequeno ponteiro para a correspondência anterior. Se o compressor não usar compactação sólida, a primeira ocorrência da string no arquivo será registrada como um literal , que é maior.


Tem algo a acrescentar à explicação? Som desligado nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.


Como usar o novo Gerenciador de Tarefas no Windows 8 ou 10

Como usar o novo Gerenciador de Tarefas no Windows 8 ou 10

O Gerenciador de Tarefas no Windows 8 e 10 foi completamente revisado. É mais fácil de usar, mais elegante e mais cheio de recursos do que nunca. O Windows 8 pode ser tudo sobre o Metro, mas o Gerenciador de Tarefas eo Windows Explorer estão melhores do que nunca. O Gerenciador de Tarefas agora gerencia programas de inicialização, mostra seu endereço IP e exibe gráficos de uso de recursos sofisticados.

(how-to)

Como Salvar Artigos para Leitura Mais Tarde com o Pocket

Como Salvar Artigos para Leitura Mais Tarde com o Pocket

Os marcadores são da última década. Se você encontrar um artigo on-line que deseja salvar mais tarde, coloque-o no Pocket - um serviço da Web gratuito que salva artigos e os sincroniza com todos os seus dispositivos, sem anúncios ou formatações desnecessárias. Você pode até lê-los offline. Leia mais tarde, os serviços são abundantes, e embora você já possa ter um favorito, nossa escolha é Pocket, que parece fazer tudo melhor do que qualquer outra coisa.

(how-to)