Eu normalmente uso o WinRAR sobre o 7-Zip simplesmente porque é mais rápido e apenas um pouco menos eficiente com a compactação. Fiz alguns testes em diferentes tipos e tamanhos de arquivo comparando as configurações padrão do 7-Zip e 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, na verdade, 100% mais rápido. Mas gosto mais de software livre. Então, aqui estão as minhas questões:
- Existe uma maneira de acelerar o 7-Zip? Eu gostaria que fosse pelo menos compatível com a velocidade do WinRAR
- Existe uma maneira de criar segmentos de recuperação no 7-Zip como você pode no WinRAR? Não vi nenhum, mas acho que poderia ser uma coisa da linha de comando.
- Testei o WinRAR e o 7-Zip usando a versão estável mais recente de cada um (4-dot-something with 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 diminuindo para a compactação mínima.
Se isso importa, eu uso um Intel i7 720 (1.6 GHz) / (2.8 GHz) quad core com 4 GB de RAM DDR3 e a versão de 64 bits do 7-Zip e Debian x64 5.0.4 e Windows 7 de inicialização dupla. Casa.
Respostas:
Se você adquirir o 7-Zip 9.13 beta, poderá alterar o tipo de arquivo para LZMA2 e, assim, poder usar quantos threads desejar, embora o uso da memória seja fenomenal.
Instale a versão beta, clique com o botão direito do mouse no material que deseja arquivar e, no menu 7-Zip, clique em "Adicionar ao arquivo ..." e você obterá algo semelhante à janela abaixo. No lado esquerdo, em Método de compactação, você encontrará "LZMA2", que permitirá alterar o número de threads, que será uma opção um pouco mais abaixo.
Isso tem o potencial de aumentar enormemente o desempenho em> 2 processadores principais, pois pode ser melhor ajustado ao seu sistema, e o método de compactação normal pode lidar apenas com 2 threads no máximo.
O "/ 1" que você vê à direita da caixa de seleção de número de threads na imagem é o número de processadores em seu sistema e, portanto, o número recomendado de threads. Meu i7 é um processador quad core, mas possui hyperthreading (o que realmente ajuda aqui, aliás), então é exibido como "/ 8"
fonte
Como cada encadeamento parece compactar vários arquivos ao mesmo tempo, a melhor coisa que você pode fazer para aumentar o desempenho de trabalhos zip muito grandes é definir encadeamentos como 1, para garantir que seu disco rígido procure um arquivo por vez.
Melhoramos o desempenho em todos os nossos procedimentos diários de backup zip, adicionando
-mmt=off
à linha de comando 7-zip. Nosso backup do "repositório SVN visual", que é feito a partir de vários arquivos pequenos, levou 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 devido à procura dos discos rígidos. Agora, tudo permanece muito rápido durante esses cinco minutos.Para tudo o que você faz em uma máquina, a atividade do disco rígido sempre será mais lenta que a capacidade da CPU. Você pode aumentar o desempenho do disco desativando as atividades paralelas e certificando-se de que o disco rígido leia (e grave) seus arquivos um a um em série.
Também é melhor ler do disco1 e gravar seu ZIP no disco2, pois o cabeçote físico não se move da leitura para a gravação.
Exemplo de linha para obter a velocidade máxima do ZIP, mantendo o desempenho da sua máquina:
D:
eT:
são 2 discos físicos diferentesfonte
-mx=1
(o que quase não é compactação). Se você não está compactando, a maior parte do trabalho é feita pelo HDD. Se você configurar-mx=9
os processadores, realmente precisará trabalhar para compactar o arquivo. Eu precisaria tentar, mas, dependendo do gargalo (HDD ou CPU), pode ser melhor ou pior.-mmt=off
é mais rápido, mesmo com-m0=lzma2 -mx=5
. (Sem-mmt=off
: 1m27.811s reais, 2m4.976s usuário, 0m3.729s sys . Com-mmt=off
: 1m18.896s reais, 1m17.160s usuário, sys 0m1.661s )Todos os algoritmos de compactação que usei recentemente (ZIP, RAR, 7z, tar / bzip2) são vinculados à E / S, não à CPU. Assistir ao MenuMeters no meu laptop Mac mostra atividade constante do disco, mas apenas 50% ou menos 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 alguma coisa. :-)
fonte
Na minha empresa, estamos trabalhando com uma versão antiga do 7-zip (4.52 beta) e executando o seguinte comando:
Isso está funcionando bem, mas depois de ter atualizado para a versão mais recente 16.04 (32 bits), o desempenho caiu enormemente, por isso decidi fazer o downgrade novamente para a versão antiga.
fonte
Outro pequeno truque para melhorar o desempenho quando você usa código como este exemplo:
é, se possível, ter na matriz $ ListDir listado os diretórios por tamanho, do menor ao maior. Isso acontece porque, em cada ciclo foreach, o 7zip cria um arquivo temporário que é tão grande (ou maior) que o original e, em seguida, adiciona um novo arquivo dentro deles. Eu tentei com casos em que existem dois ou mais diretórios com alguns MB e um com muitos GB e a economia de tempo é da ordem de vários minutos.
fonte
Meu palpite é que acelerar o 7-Zip é impossível sem reescrever seus algoritmos de compactaçã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 grande aumento. 50-100% de aumento que você está procurando.
fonte