J'utilise normalement WinRAR sur 7-Zip simplement parce qu'il est plus rapide et seulement un peu moins efficace avec la compression. J'ai fait quelques tests sur différents types et tailles de fichiers en comparant les paramètres par défaut 7-Zip et WinRAR sur leur compression normale et leur meilleure compression, et dans de nombreux cas, WinRAR était 50% plus rapide et dans certains cas, il était en fait 100% plus rapide. Mais j'aime plus les logiciels libres. Donc, voici mes questions:
- Existe-t-il un moyen d'accélérer 7-Zip? Je voudrais qu'il soit au moins à égalité avec la vitesse de WinRAR
- Existe-t-il un moyen de créer des segments de récupération dans 7-Zip comme vous le pouvez dans WinRAR? Je n'en ai pas vu, mais je suppose que cela pourrait être une chose en ligne de commande.
- J'ai testé WinRAR et 7-Zip en utilisant la dernière version stable de chacun (quelque chose à 4 points avec 7-Zip). La version bêta 9.x est-elle sensiblement plus rapide à la compression?
Je parle de plus rapide à un paramètre comparable dans WinRAR, pas seulement de réduire à la compression minimale.
Si cela importe, j'utilise un processeur quadricœur Intel i7 720 (1,6 GHz) / (2,8 GHz) avec 4 Go de RAM DDR3, et la version 64 bits de 7-Zip et Debian x64 5.0.4 à double démarrage et Windows 7 Accueil.
Réponses:
Si vous obtenez la version bêta de 7-Zip 9.13, vous pouvez changer le type d'archive en LZMA2 et ainsi pouvoir 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, faites un clic droit sur les éléments que vous souhaitez archiver, puis dans le menu contextuel 7-Zip, cliquez sur "Ajouter aux archives ..." et vous obtiendrez quelque chose de similaire à la fenêtre ci-dessous. Sur le côté gauche, sous Méthode de compression, vous devriez trouver "LZMA2" qui vous permettra de changer le nombre de threads qui sera une option un peu plus bas.
Cela a le potentiel d'augmenter considérablement les performances sur les processeurs de> 2 cœurs, car il peut être mieux réglé sur votre système, et la méthode de compression normale ne peut gérer que 2 threads au 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 dans votre système et donc le nombre recommandé de threads. Mon i7 est un processeur quad core mais a un hyperthreading (qui aide réellement ici btw) donc il apparaît comme "/ 8"
la source
Comme chaque thread semble compresser plusieurs fichiers en même temps, la meilleure chose à faire pour augmenter les performances des très gros travaux zip est de définir les threads sur 1, pour être sûr que votre disque dur recherchera un fichier à la fois.
Nous améliorons les performances de toutes nos procédures quotidiennes de sauvegarde zip en ajoutant
-mmt=off
à la ligne de commande 7-zip. Notre sauvegarde du "dépôt SVN visuel", qui est faite de plusieurs petits fichiers, prenait entre 50 et 60 minutes.Avec
-mmt=off
, nous faisons maintenant toujours en moins de cinq minutes! Et, pendant ces 50 minutes, tous nos serveurs ont été très lents à cause de la recherche de disques durs. 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 processeur. 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 en série.
Il est également préférable de lire à partir de disk1 et d'écrire votre ZIP sur disk2, car la tête physique ne passe pas de lecture à écriture.
Exemple de ligne pour obtenir une vitesse ZIP maximale tout en conservant les performances de votre machine:
D:
etT:
sont 2 disques physiques différentsla source
-mx=1
(ce qui n'est presque pas de compression). Si vous ne compressez pas, la plupart du travail est effectué par le disque dur. Si vous définissez-mx=9
les processeurs doivent vraiment travailler pour compresser le fichier. J'aurais besoin de l'essayer, mais selon le goulot d'étranglement (disque dur ou processeur), cela pourrait être meilleur ou pire.-mmt=off
est plus rapide même avec-m0=lzma2 -mx=5
. (Sans-mmt=off
: réel 1m27.811s, utilisateur 2m4.976s, sys 0m3.729s . Avec-mmt=off
: réel 1m18.896s, utilisateur 1m17.160s, sys 0m1.661s )Tous les algorithmes de compression que j'ai utilisés récemment (ZIP, RAR, 7z, tar / bzip2) sont liés aux E / S et non liés au CPU. Regarder MenuMeters sur mon ordinateur portable Mac montre une activité constante du disque, mais seulement 50% ou moins d'activité du processeur.
Ainsi, la façon d'accélérer la compression / décompression est d'accélérer votre disque. Ce n'est pas toujours possible.
Ma "solution" à cela est de simplement faire autre chose pendant que je compresse quelque chose. :-)
la source
Dans mon entreprise, nous travaillons avec une ancienne version de 7-zip (4.52 beta), et nous exécutons la commande suivante:
Cela fonctionne bien, mais après avoir juste mis à niveau vers la nouvelle version 16.04 (32 bits), les performances ont énormément baissé, j'ai donc décidé de revenir à l'ancienne version.
la source
Une autre petite astuce pour améliorer les performances lorsque vous utilisez du code comme cet exemple:
est, si possible, dans le tableau $ ListDir répertorié les répertoires par taille, du plus petit au plus grand. Cela se produit car à chaque cycle foreach 7zip crée un fichier temporaire qui est aussi grand (ou plus grand) que l'original, puis ajoutez un nouveau fichier à l'intérieur. J'ai essayé avec des cas dans lesquels il y a deux répertoires ou plus grands certains Mo et un grand beaucoup de Go et le gain de temps est de l'ordre de plusieurs minutes.
la source
Je suppose que l'accélération de 7-Zip est impossible sans réécrire ses algorithmes de compression / décompression, il peut y avoir une sorte de réglage qui augmente la vitesse, mais ce ne sera probablement qu'une augmentation de 10 ou 15%, pas une augmentation massive Augmentation de 50 à 100% que vous recherchez.
la source