Resumo dos testes de benchmark de compactação de vários arquivos

Resumo dos testes de benchmark de compactação de vários arquivos

insira a descrição da imagem aqui

Portanto, existem diferentes métodos de compactação no 7zip. Qual método é mais adequado para qual tarefa?

Por exemplo: Uma diferença entre LZMA e LZMA2 é que posso escolher todos os núcleos da minha CPU, enquanto no LZMA 2 núcleos é o máximo.

Responder1

Use o LZMA 2, a menos que você queira extrair o arquivo em um sistema que não consegue lidar com arquivos LZMA 2.

De modo geral, a maioria dos algoritmos de compactação modernos fornecem aproximadamente a mesma compactação e, com relação ao número de núcleos que você pode usar de uma vez, cabe a você decidir quantos deseja usar. De modo geral (a menos que você esteja criando arquivos grandes), não há razão para precisar de mais de um. Além disso, com vários núcleos fazendo a compactação, o gargalo pode se tornar o disco rígido.

Responder2

O 7-Zip (pelo menos a partir de 27/09/2019) possui um documento de Ajuda integrado com uma explicação muito, muito boa das várias configurações que você pode escolher e para que, em geral, cada uma serve.

Não há resultados de benchmark nem nada, mas foram informações suficientes para inspirar em mim alguma confiança de que eu estava escolhendo configurações “boas o suficiente” e não “acidentalmente horríveis”.

O documento de Ajuda está disponível no Gerenciador de arquivos 7-Zip, bem como na caixa de diálogo Adicionar ao arquivo.

O caminho "Conteúdo" para a página que achei útil (que abre diretamente na caixa de diálogo Adicionar ao arquivo) é:

File Manager / Plugins / 7-Zip / Add to Archive Dialog Box

insira a descrição da imagem aqui

Aqui está uma cópia/cola aproximada da seção do método de compactação:

Descrição do Método

  • LZMA
    • É o método básico de compactação para o formato 7z. Mesmo versões antigas do 7-Zip podem descompactar arquivos criados com o método LZMA. Ele fornece alta taxa de compressão e descompressão muito rápida.
  • LZMA2
    • Método de compactação padrão do formato 7z. LZMA2 é um método de compactação baseado em LZMA. Ele fornece melhor suporte multithreading do que LZMA. Mas a taxa de compressão pode ser pior em alguns casos. Para obter a melhor taxa de compactação com LZMA2, use 1 ou 2 threads de CPU. Se você usar LZMA2 com mais de 2 threads, o 7-zip divide os dados em pedaços e compacta esses pedaços de forma independente (2 threads por cada pedaço).
  • PPMd
    • Algoritmo PPMdH de Dmitry Shkarin com pequenas alterações. Geralmente fornece alta taxa de compactação e alta velocidade para arquivos de texto.
  • BZip2
    • Método de compressão padrão baseado no algoritmo BWT. Geralmente ele fornece alta velocidade e uma boa taxa de compactação para arquivos de texto.
  • Esvaziar
    • Método de compactação padrão dos formatos ZIP e GZip. A taxa de compressão não é muito alta. Mas fornece compactação e descompactação bastante rápidas. O método Deflate suporta apenas dicionário de 32 KB.
  • Esvaziar64
    • Versão modificada do algoritmo Deflate com dicionário maior (64 KB).

Responder3

Lzma2 é mais rápido ao usar 4 ou mais núcleos e oferece melhor compactação.Esse documentoexplica tudo.

Responder4

O link pode ser encontrado na máquina Wayback:

https://web.archive.org/web/20221015140740/http://www.maximumcompression.com/data/summary_mf2.php

(foi chato reformatar a tabela - posso me perguntar por que não é possível converter uma tabela HTML em seu próprio formato)

Resumo dos testes de benchmark de compactação de vários arquivos

Tipo de arquivo: Vários tipos de arquivo (46 no total)

Nº de arquivos a serem compactados neste teste: 510

Tamanho total do arquivo (bytes): 316.355.757

Tamanho médio do arquivo (bytes): 620.305

Maior arquivo (bytes): 18.403.071

Menor arquivo (bytes): 3.554

Este teste foi projetado para modelar o desempenho do “mundo real” de compressores de dados sem perdas. O conjunto de testes contém uma mistura de diferentes tipos de arquivos que são escolhidos tendo em mente “Para que as pessoas mais usam os arquivadores”. O conjunto de testes deve conter dados ponderados (em tipo e proporção de arquivos no conjunto) pela frequência com que esses arquivos são usados ​​para compactação por usuários normais usando software de compactação. Então, por exemplo, haverá mais arquivos txt do que arquivos .ocx no conjunto (sim, isso é arbitrário). O conjunto contém centenas de arquivos e tem um tamanho total de mais de 300 Mb. A ideia de uma grande coleção é filtrar o “ruído”. Um compressor pode funcionar mal em 1 ou 2 tipos de arquivos, mas em uma coleção muito grande não causará tanto dano.

Alguns programas como CCM e BZIP2 só podem compactar um arquivo por vez. Para esses programas, é criado um único arquivo TAR contendo todos os arquivos. Os arquivos neste arquivo TAR são ordenados alfabeticamente por sufixo e depois por nome. Os resultados destes compressores estão marcados com um 'Y' na coluna alcatroada.

O conjunto de testes consiste nos seguintes tipos de arquivo:

Tipos de arquivo) Descrição % Do total # de arquivos
TOC, MBX Caixas de correio Eudora 12h31 16
EXE, DLL, OCX, DRV Executáveis 10,99 35
TXT, RTF, DIC, GNL Arquivos de texto em vários idiomas 21/10 41
BMP, TIFF Imagens bitmaps/TIF 7,88 15
REGISTRO Arquivos de registro 6,34 6
HTML, PHP Arquivos HTML 6.13 19
DOC Arquivos do MS Word 6.08 30
C, CPP, PAS, DCU Código fonte 6h00 235
MDB, CSV Bancos de dados 4.26 7
Ajuda de suporte Arquivos de ajuda do Windows 4.23 7
CBF, CBG Bancos de dados de xadrez pré-compactados 3,55 2
WAV Arquivos de som Wave 3,45 9
XLS Planilhas XLS 2.41 16
PDF Documento Adobe Acrobat 1,59 6
TTF Fontes True Type 1,15 15
DEF Arquivos de definição de vírus 1.10 3
JPG, GIF Arquivos de imagem 0,53 9
CHM Arquivos de ajuda pré-compactados 0,49 2
INI, INF Arquivos INI 0,42 10
Outros DAT, JAR, M3D, SYS, PPT, MAPA, WP, RLL, RIB.. 10,88 27

Considerando o fato de que deveria ser um teste do 'mundo real', não analisarei a melhor combinação possível de opções (linha de comando ou GUI) para usar para compactação ideal, mas apenas testarei um conjunto limitado como 'usuários normais' fariam . Para 7-zip, isso significa, por exemplo, que usarei a GUI e selecionarei o método de compactação Ultra (que pode ser facilmente superado com algumas boas opções de linha de comando), o WinRar será testado com tamanho máximo de dicionário e arquivamento sólido, etc. utilizar no máximo 800 MB de memória e deverá finalizar a etapa de compactação em até 12h. O tamanho compactado deve ser 50% ou menos comparado ao tamanho original a ser listado no MFC.

Para meus testes de arquivo único, recebi muitas solicitações para adicionar o tempo de compactação às tabelas. Não fiz isso pelos motivos indicados no arquivo de resumo de arquivo único, mas estou planejando medir os tempos de compactação para este teste de vários arquivos! Também decidi tornar esse conjunto de testes 'não público', para que seja mais difícil para os desenvolvedores ajustarem seus programas para esse teste específico. Acho que esta é a maneira mais justa de fazer testes de desempenho na “vida real”.

Sistema de pontuação: O programa que produz o menor tamanho compactado é considerado o melhor programa. O programa mais eficiente (leia-se: use full) é calculado multiplicando o tempo de compactação + descompactação (em segundos) necessário para produzir o arquivo com a potência do tamanho do arquivo dividido pelo menor tamanho de arquivo medido. Quanto menor a pontuação, melhor. A idéia básica é que um compressor X tenha a mesma eficiência que o compressor Y se X puder compactar duas vezes mais rápido que Y e o tamanho do arquivo resultante de X for 10% maior que o tamanho de Y. (Agradecimentos especiais a Uwe Herklotz por acertar esta fórmula)

pontuação_X = POTÊNCIA(2; ((tamanho_X / tamanho_TOP) - 1) / 0,1) * tempo_X

com

  score_X     efficiency score for a certain compressor X

  time_X      time elapsed by compressor X (comp + decomp time)

  size_X      archive size achieved with compressor X

  size_TOP    archive size by top archiver (smallest benchmark result)

Fórmula para calcular a eficiência do compressor com base no tamanho comprimido e no tempo de compressão

"0,1" representa 10% e a potência de 2 garante que para cada 10% de resultados piores (em comparação com o topo) o tempo seja duplicado, portanto qualquer arquivador (exceto o compressor superior) receberá uma penalidade no prazo. A pontuação do compressor superior é sempre igual ao seu valor de tempo.

informação relacionada