Compactação 7-Zip em computadores com vários núcleos

20

O 7-Zip aproveita os sistemas multiprocessador ou multinúcleo ao compactar?

Por exemplo, haveria uma velocidade de quase 16 vezes em um sistema de 16 núcleos, assumindo que não havia gargalos no disco ou na memória?

Ou é limitado a 2 threads (aceleração 2 vezes em sistemas com mais de uma CPU ou núcleo)?


Edit : Resumindo: a versão estável atual do 7-Zip (e mais antiga) não aproveita ao máximo mais de 2 CPU / núcleos ao compactar como 7z (apenas para Zip e BZip2), mas a versão 9 (atualmente em beta) . A opção da linha de comando para usar 16 núcleos com a versão 9 é (esta está na pasta de instalação da versão do Windows, no arquivo de ajuda, 7-zip.chmVersão da Linha de Comandos / Switches / -m (Definir método de compactação) / <near> "Sets modo multithread "):

-mt16
Peter Mortensen
fonte
11
Eu não acho que o resumo é bastante precisa, ver alguns dos outros respostas para mais detalhes ...
rogerdpack

Respostas:

10

Você precisa usar a versão beta para obter acesso a mais núcleos. Beta é estável em outros softwares, não se preocupe. Houve uma explicação em uma postagem no fórum no site oficial. Já o uso há um tempo e não há nenhum problema.

Primeiro

Segundo

A propósito, eu estou usando 7z 9.13 beta x64 no momento. Usá-lo em ambientes produtivos também, grandiosidade. (Obrigado Igor pelo ótimo software.;))

Apache
fonte
3
Desde então, surgiu uma nova versão estável, que suporta a compactação multithread por padrão, sem a necessidade da versão beta.
Apache
Isso não está correto. Pode usar 4, 8 e mais núcleos. Basta usar a versão mais recente. Poxa.
Apache
4
Observe que esta resposta usa LZMA2 e não LZMA. O LZMA2 pode usar mais de dois núcleos dividindo o arquivo em pedaços e processando-os independentemente. Isso pode resultar no LZMA oferecendo taxas de compressão mais altas.
Louis
4

Ao criar um arquivo 7-Zip, ele pode usar dois threads, enquanto cria um arquivo ZIP, ele pode usar oito threads (na minha máquina de oito núcleos).

akira
fonte
11
Você pode usar 7z com o método LZMA2 usar núcleos máximas
Behrouz.M
11
@raypixar Não funciona para mim em um computador i7. Somente o algoritmo BZip2 permite que ele execute 8 threads completos, outro algoritmo não executa 100%, apenas ~ 20% na melhor das hipóteses. Mesmo o LZMA2 exibe 8/8 de núcleo no painel de configuração, mas durante o processamento, apenas ultiliza ~ 20% da CPU.
Edward
11
@ Edward: não posso confirmar seus números / experiência: no meu i5 7z-9.22beta utiliza entre 75% e 95% da CPU e gera entre 8 e 32 threads para arquivar uma pasta ~ 240mb cheia de mp3s. .bz2.7z levou idades, .lzma2.7z foi bem rápido (todas as ultra-configurações) e um pouco maior que .bz2.7z.
akira
11
@akira Sim, eu sei. De qualquer forma, o comentário anterior direciona para a sugestão "ray pixar" do membro - use 7z com LZMA2 para usar todos os núcleos, mas no meu caso, não. Sobre seus números, acho lógico. Pesquisei neste site su mais vezes depois de ler este artigo e descobri talvez algo errado com a minha instalação 7zip atual. Mas o problema só aparece na GUI (interface gráfica do usuário); ele não usa mais de 20% da CPU quando comprimo arquivos com o método LZMA2. Somente quando eu uso a linha de comando com parâmetros como -m0 = lzma2 -mmt = 8, a compactação leva 100% da CPU; caso contrário, com a GUI, não entendi por que não.
Edward
2

De acordo com o artigo da Wikipedia :

Recursos O 7-Zip suporta muitos recursos, incluindo:

  1. Suporte para a cifra AES de 256 bits. A criptografia pode ser ativada para os arquivos e a estrutura de diretórios 7z. Quando a estrutura de diretórios é criptografada, os usuários precisam fornecer uma senha para ver os nomes de arquivos contidos no arquivo morto, a menos que apenas os dados tenham sido criptografados, mas não os nomes de arquivos. O padrão de criptografia AES desenvolvido pelo WinZip também está disponível no 7-Zip para criptografar arquivos ZIP com o AES de 256 bits, mas não oferece criptografia de nome de arquivo como nos arquivos 7z.
  2. Volumes de tamanhos dinamicamente variáveis, permitindo o uso de backups em mídia removível, como CDs e DVDs graváveis.
  3. Usabilidade como um gerenciador de arquivos ortodoxo básico quando usado no modo de 2 painéis.
  4. Múltiplas configurações de CPU / núcleo / threading podem ser configuradas.
  5. A capacidade de tentar abrir arquivos EXE como arquivos, permitindo a descompactação de dados de dentro de muitos programas do tipo "SetUp", "Installer" ou "Extrair" sem a necessidade de iniciá-los.
  6. A capacidade de descompactar arquivos com nomes de arquivos corrompidos, renomeando os arquivos conforme necessário. A capacidade de criar arquivos de extração automática, embora não seja possível para arquivos com vários volumes.

Portanto, abra o aplicativo e veja o suporte para multi-threading.

ta.speot.is
fonte
0

Você também pode usar o versão 7-Zip Zstandard , que suporta threading de até 256 threads para todos os 5 codecs adicionais.

Os codecs são:

  1. Brotli
  2. LZ4
  3. LZ5
  4. Lagarto
  5. Zstandard

Execute-o como:

7z a archiv.7z -m0=brotli -mx1 -mmt=1

...

7z a archiv.7z -m0=brotli -mx1 -mmt=256

Tino Reichardt
fonte