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).
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?
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 assistir a vídeos da Web após a desinstalação do Flash
A Web para dispositivos móveis não precisa do Flash. iPads, iPhones e dispositivos Android modernos não são compatíveis com Flash, e os desenvolvedores da Web oferecem vídeos em HTML5 para veicular esses dispositivos. Mas os navegadores de desktop nem sempre os obtêm por padrão, mesmo que você desinstale o Flash.
Como obter respostas de mensagens de grupo como mensagens individuais no Android
ÀS vezes, as mensagens de grupo fazem mais sentido do que enviar mensagens individuais. Quando você está tentando reunir um grupo de pessoas e uma conversa precisa acontecer, colocar todos na mesma mensagem é o caminho a ser seguido. Outras vezes, esse não é o caso A forma como as mensagens de grupo funcionam na maioria das vezes é bastante direta: o SMS é convertido em MMS e enviado para todos na lista de distribuição.