44 votes

Comment rendre 7-Zip plus rapide

Je utilise normalement WinRAR plutôt que 7-Zip simplement parce que c'est plus rapide et seulement un peu moins efficace en compression. J'ai fait quelques tests sur différents types et tailles de fichiers en comparant les paramètres par défaut de compression de 7-Zip et WinRAR en compression normale et en meilleure compression, et dans de nombreux cas WinRAR était 50% plus rapide et dans certains cas même 100% plus rapide. Cependant, j'aime plus les logiciels libres. Voici donc mes questions :

  1. Y a-t-il un moyen d'accélérer 7-Zip ? J'aimerais qu'il soit au moins aussi rapide que WinRAR.
  2. Y a-t-il un moyen de créer des segments de récupération dans 7-Zip comme on peut le faire avec WinRAR ? Je n'ai rien vu à ce sujet, mais je suppose que cela pourrait être une chose en ligne de commande.
  3. J'ai testé WinRAR et 7-Zip en utilisant la dernière version stable de chacun (version 4-point-quelque chose avec 7-Zip). Est-ce que la version bêta 9.x est sensiblement plus rapide en compression ?

Je parle de plus rapide avec un réglage comparable à celui de WinRAR, pas seulement en réduisant la compression au minimum.

Si cela a de l'importance, j'utilise un Intel quad-core i7 720 (1.6 GHz)/(2.8 GHz) avec 4 Go de RAM DDR3, la version 64 bits de 7-Zip, et Debian x64 5.0.4 en dual-boot avec Windows 7 Home.

39voto

Ana cleto Points 11

Si vous obtenez le 7-Zip 9.13 beta, vous pouvez changer le type d'archive en LZMA2 et ainsi être en mesure d'utiliser autant de threads que vous le souhaitez, bien que l'utilisation de la mémoire augmente de façon phénoménale.

Installez la version bêta, cliquez avec le bouton droit sur les éléments que vous souhaitez archiver, puis sous le menu contextuel 7-Zip cliquez sur "Ajouter à l'archive..." et vous obtiendrez quelque chose de similaire à la fenêtre ci-dessous. Sur le côté gauche, sous la méthode de compression, vous devriez trouver "LZMA2" qui vous permettra de modifier le nombre de threads, une option un peu plus bas.

Cela a le potentiel d'augmenter considérablement les performances sur les processeurs à plus de 2 cœurs car il peut être mieux adapté à votre système, et la méthode de compression normale ne peut gérer que 2 threads maximum.

Le "/1" que vous voyez à droite de la zone de sélection du nombre de threads dans l'image est le nombre de processeurs de votre système et donc le nombre de threads recommandé. Mon i7 est un processeur quad-core mais possède l'hyperthreading (ce qui aide effectivement ici d'ailleurs) donc il s'affiche en "/8".

texte alternatif

38voto

Comme chaque thread semble compresser plusieurs fichiers en même temps, la meilleure chose que vous puissiez faire pour augmenter les performances des travaux de compression zip très volumineux est de définir le nombre de threads à 1, pour vous assurer que votre disque dur accédera à un fichier à la fois.

Nous améliorons les performances de toutes nos procédures de sauvegarde zip quotidiennes en ajoutant -mmt=off à la ligne de commande 7-zip. Notre sauvegarde du "dépôt SVN visual", qui est composée de plusieurs petits fichiers, prenait entre 50 et 60 minutes.

Avec -mmt=off, nous le faisons maintenant toujours en moins de cinq minutes ! Et, pendant ces 50 minutes, tous nos serveurs étaient très lents en raison des recherches sur le disque dur. Maintenant, tout reste très rapide pendant ces cinq minutes.

Pour tout ce que vous faites sur une machine, l'activité du disque dur sera toujours plus lente que la capacité de votre CPU. Vous pouvez augmenter les performances du disque en désactivant les activités parallèles et en vous assurant que le disque dur lit (et écrit) vos fichiers un par un séquentiellement.

Il est également préférable de lire depuis le disque 1 et d'écrire votre ZIP sur le disque 2, car la tête physique ne passe pas de la lecture à l'écriture.

Ligne d'exemple pour obtenir la vitesse ZIP maximale tout en préservant les performances de votre machine :

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

D: et T: sont 2 disques physiques différents

0voto

Dominique Points 1394

Dans mon entreprise, nous travaillons avec une ancienne version de 7-zip (4.52 beta), et nous exécutons la commande suivante :

"C:\Program Files\7-Zip\7z.exe" a -mx7 -mmt -sfx -xr!*. .exe \* 

Cela fonctionne bien, mais après avoir récemment mis à jour vers la nouvelle version 16.04 (32 bits), les performances ont considérablement diminué, donc j'ai décidé de revenir à l'ancienne version.

0voto

Un autre petit astuce pour améliorer les performances lorsque vous utilisez du code comme dans cet exemple :

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

est, si possible, d'avoir dans le tableau $ListDir les répertoires classés par taille, du plus petit au plus grand. Cela se produit parce qu'à chaque cycle de foreach, 7zip crée un fichier temporaire qui est aussi grand (ou plus grand) que l'original, puis ajoute de nouveaux fichiers à l'intérieur. J'ai essayé avec des cas où il y a deux ou plusieurs répertoires de plusieurs Mo et un de plusieurs Go et l'économie de temps est de l'ordre de plusieurs minutes.

-3voto

Montana Harkin Points 153

Je pense que rendre 7-Zip plus rapide est impossible sans réécrire ses algorithmes de compression/décompression, il pourrait y avoir une sorte d'astuce qui augmente la vitesse mais cela ne sera probablement qu'une augmentation de 10 ou 15%, pas un énorme 50 à 100% que vous recherchez.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X