Existe um programa de compactação ou arquivador para Windows que também desduplica? [fechadas]

12

Estou procurando um programa de arquivador que possa executar desduplicação (desduplicação) nos arquivos que estão sendo arquivados. Ao descompactar o arquivo, o software colocaria de volta todos os arquivos removidos durante o processo de compactação.

Até agora eu encontrei:

Alguém sabe de outros?

Isso provavelmente seria uma adição incrível ao 7-zip.

Larry Silverman
fonte

Respostas:

12

Quase todos os arquivadores modernos fazem exatamente isso, a única diferença é que eles se referem a ele como um arquivo "sólido", pois em todos os arquivos são concatenados em um único fluxo antes de serem alimentados pelo algoritmo de compactação. Isso é diferente da compactação zip padrão, que compacta cada arquivo um por um e adiciona cada arquivo compactado ao arquivo morto.

O 7-zip, por sua própria natureza, efetivamente alcança a desduplicação. O 7-Zip, por exemplo, pesquisará arquivos, os classificará por tipos e nomes de arquivos semelhantes e, portanto, dois arquivos do mesmo tipo e dados serão colocados lado a lado no fluxo, indo para os algoritmos do compressor. O compressor verá muitos dados que viu muito recentemente e esses dois arquivos verão um grande aumento na eficiência da compactação em comparação com a compactação dos arquivos um por um.

O Linux tem visto um comportamento semelhante por um longo tempo através da prevalência de seu formato ".tgz" (ou ".tar.gz" para usar sua forma completa), pois o tar simplesmente mescla todos os arquivos em um único fluxo (embora sem classificação e agrupamento de arquivos) e depois a compactação com o gzip. O que falta é a classificação que o 7-zip está fazendo, o que pode diminuir um pouco a eficiência, mas ainda é muito melhor do que simplesmente misturar vários arquivos compactados individualmente da mesma maneira que o zip.

Mokubai
fonte
Aprenda algo novo todos os dias. Eu não sabia que o zip compactava cada arquivo separadamente, mas depois de executar alguns testes no meu computador, percebi que você estava realmente correto. muito interessante, obrigado!
CenterOrbit 20/05
O 7ip faz um bom trabalho de desduplicação, mas também é projetado para compactar dados não duplicados com eficiência, e usa muita CPU e memória para conseguir isso, o que torna uma maneira muito ineficiente de desduplicar dados. Se você compactar dois arquivos idênticos de 100 MB, será necessário muito esforço para compactar o primeiro arquivo com eficiência, e somente então (se o tamanho do dicionário for grande o suficiente) compactará o segundo arquivo como uma duplicata do primeiro.
Mkfearnley
O gzip não .tar.gzcompacta apenas blocos relativamente pequenos (como 900 KB) por vez de maneira completamente independente um do outro e, portanto, não tem a capacidade de desduplicar dois arquivos grandes, mas idênticos (por exemplo, duas imagens de 4 MB)?
binki
Por exemplo, o 7z conseguiu deduzir entre arquivos grandes, mas o gzip não foi: gist.github.com/binki/4cf98fb4f1f4aa98ee4a00edaf6048fa
binki
4

Não faz sentido usar a desduplicação com um processo de compactação. A maioria dos algoritmos de compactação cria o que é chamado de 'dicionário' que procurará bits de dados mais comuns ou reutilizados. a partir daí, apenas fará referência à entrada do dicionário em vez de escrever a "palavra" inteira novamente. Dessa maneira, a maioria dos processos de compactação já remove dados redundantes ou duplicados de todos os arquivos.

Por exemplo, se você pegar um arquivo de 1 MB e copiá-lo 100 vezes com um nome diferente a cada vez (totalizando 100 MB de espaço em disco), compactá-lo em um arquivo 7zip ou zip, você terá um arquivo zip total de 1 MB. Isso ocorre porque todos os seus dados foram colocados em uma entrada do dicionário e referenciados 100 vezes, o que ocupa muito pouco espaço.

Essa é uma explicação muito simples do que acontece, mas o ponto ainda é bem transmitido.

CenterOrbit
fonte
1
Como o tamanho do dicionário é muito limitado para a maioria dos arquivos de compactação, isso não é válido no uso diário. Tente isso com arquivos de 50 MB e seu tamanho compactado dobrará com dois arquivos de entrada idênticos.
Chaos_99
1
Os arquivos zip, diferentemente dos arquivos 7zip, não oferecem suporte à desduplicação entre arquivos. Os arquivos compactados compactam e armazenam cada arquivo separadamente, para que os arquivos duplicados sejam simplesmente armazenados várias vezes no arquivo morto.
Mkfearnley # 22/16
1
Embora o 7zip ofereça suporte à desduplicação entre arquivos, ele foi projetado para encontrar e compactar correspondências muito mais curtas. Seus algoritmos são muito mais lentos e consomem mais memória do que o possível para algo projetado para encontrar duplicação de dados em larga escala.
Mkfearnley # 22/16
4

O 7-Zip, zip, gzip e todos os outros arquivadores não detectam áreas idênticas distantes umas das outras, como apenas alguns megabytes ou mais, dentro do mesmo arquivo ou colocadas em posições diferentes dentro de arquivos diferentes.

Portanto, não, arquivadores normais não têm um desempenho tão bom quanto o exdupe e outros, em algumas situações. Você pode ver isso se compactar algumas máquinas virtuais ou outras coisas.

Ian
fonte
1
Isto está certo. Assim que o volume de dados exclusivo excede o tamanho do dicionário dos compressores, a compactação diminui o fluxo. O exdupe oferece desempenho superior para grandes volumes de dados.
usr