Como tornar o 7-Zip mais rápido

29

Eu normalmente uso o WinRAR sobre o 7-Zip simplesmente porque é mais rápido e menos eficiente com a compactação. Fiz alguns testes em diferentes tipos e tamanhos de arquivos comparando as configurações padrão do 7-Zip e do WinRAR em sua compactação normal e sua melhor compactação, e em muitos casos o WinRAR foi 50% mais rápido e em alguns foi 100% mais rápido. Mas eu gosto mais do FOSS. Então, aqui estão minhas perguntas:

  1. Existe uma maneira de acelerar o 7-Zip? Eu gostaria que pelo menos estivesse a par com a velocidade do WinRAR
  2. Existe uma maneira de fazer segmentos de recuperação no 7-Zip como você pode no WinRAR? Eu não vi nenhum, mas acho que poderia ser uma coisa de linha de comando.
  3. Testei o WinRAR e o 7-Zip usando a última versão estável de cada um (4-pontos-algo com 7-Zip). A versão beta 9.x é visivelmente mais rápida na compactação?

Estou falando mais rápido em uma configuração comparável no WinRAR, não apenas reduzindo a compactação mínima.

Se for importante, eu uso um quad-core Intel i7 720 (1,6 GHz) / (2,8 GHz) com 4 GB de RAM DDR3, e a versão de 64 bits do 7-Zip e Debian de dupla inicialização x64 5.0.4 e o Windows 7 Home.

    
por Mella 17.04.2010 / 02:43

6 respostas

31

Se você obtiver o 7-Zip 9.13 beta , poderá alterar o tipo de arquivo para LZMA2 e, assim, conseguir use quantos segmentos desejar, embora o uso da memória aumente fenomenalmente.

Instale o beta, clique com o botão direito do mouse nas coisas que você deseja arquivar, então, sob o menu contect do 7-Zip, clique em "Adicionar ao arquivamento ..." e você terá algo semelhante à janela abaixo. No lado esquerdo, sob o método de compactação, você deve encontrar "LZMA2", que permitirá alterar o número de segmentos, que será uma opção um pouco mais abaixo.

Isso tem o potencial de aumentar amplamente o desempenho em processadores de 2 núcleos, já que ele pode ser mais bem ajustado ao seu sistema, e o método de compactação normal só pode manipular no máximo 2 threads.

O "/ 1" que você vê à direita da caixa de seleção do número de segmentos na imagem é o número de processadores em seu sistema e, portanto, o número recomendado de encadeamentos. Meu i7 é um processador quad core, mas tem hyperthreading (que realmente ajuda aqui btw) por isso, mostra como "/ 8"

    
por 25.05.2010 / 12:48
28

Como cada thread parece comprimir vários arquivos ao mesmo tempo, a melhor coisa que você pode fazer para aumentar o desempenho de trabalhos zip muito grandes é definir threads para 1, para ter certeza de que seu disco rígido irá procurar um arquivo em um tempo.

Melhoramos o desempenho em todos os nossos procedimentos diários de backup de zip adicionando -mmt=off à linha de comando de 7 zip. Nosso backup do "repositório visual do SVN", feito de vários arquivos pequenos, levava entre 50 e 60 minutos.

Com -mmt=off , agora fazemos sempre em menos de cinco minutos! E, durante esses 50 minutos, todos os nossos servidores ficaram muito lentos por causa dos discos rígidos que estavam procurando. Agora, tudo continua muito rápido durante esses cinco minutos.

Para tudo que você faz em uma máquina, a atividade do disco rígido sempre será mais lenta do que a capacidade da sua CPU. Você pode aumentar o desempenho do disco desabilitando atividades paralelas e certificando-se de que o disco rígido leia (e grave) seus arquivos um por um em série.

Além disso, é melhor ler o disco1 e escrever o seu ZIP no disco2, pois o cabeçalho físico não passa de leitura para escrita.

Exemplo de linha para obter a velocidade máxima de ZIP enquanto mantém o desempenho da sua máquina:

start "" /wait /belownormal c:\Progra~1-Zipz.exe a -tzip -mx=1 -mmt=off t:\backup.zip d:\folderToBackup\*

D: e T: são dois discos físicos diferentes

    
por 12.02.2013 / 16:14
0

Meu palpite é que acelerar o 7-Zip é impossível sem reescrever seus algoritmos de compressão / descompactação, pode haver algum tipo de ajuste que aumenta a velocidade, mas provavelmente será apenas um aumento de 10 ou 15%, não é um aumento maciço de 50 a 100% que você está procurando.

    
por 17.04.2010 / 04:26
0

Todos os algoritmos de compactação que usei recentemente (ZIP, RAR, 7z, tar / bzip2) são vinculados a E / S, não vinculados à CPU. Assistir MenuMeters no meu laptop Mac mostra atividade constante no disco, mas apenas 50% ou menos da atividade da CPU.

Assim, a maneira de acelerar a compactação / descompactação é acelerar o seu disco. Isso nem sempre é possível.

Minha "solução" para isso é apenas fazer outra coisa enquanto estou compactando algo. : -)

    
por 25.05.2010 / 16:55
0

Na minha empresa, estamos trabalhando com uma versão antiga do 7-zip (4.52 beta) e estamos executando o seguinte comando:

"C:\Program Files-Zipz.exe" a -mx7 -mmt -sfx -xr!*.<exclude_extension> <destination>.exe <source_directory>\* 

Isso está funcionando bem, mas depois de ter atualizado para a versão mais recente 16.04 (32 bits), o desempenho caiu muito, então decidi voltar para a versão antiga.

    
por 09.05.2017 / 11:21
0

Outro pequeno truque para melhorar o desempenho quando você usa um código como este exemplo:

$7zip = "$env:ProgramFiles-Zipz.exe"
set-alias sz $7zip
$FileZip = "$DiscoZip\temp\$TempFile"
foreach ($DirData in $ListDir) { $out7z = (sz a $FileZip $DirData) }

é, se possível, ter na matriz $ ListDir listado os diretórios por tamanho, do menor para o maior. Isto acontece porque em cada ciclo foreach o 7zip cria um arquivo temporário que é tão grande (ou maior) que o original, então adiciona um novo arquivo dentro deles. Eu tentei com casos em que há dois ou mais diretórios grandes alguns MB e um grande muitos GB ea economia de tempo é da ordem de vários minutos.

    
por 19.10.2018 / 11:54