Quoi outils de compression sont disponibles dans Ubuntu qui peuvent bénéficier d'un CPU multi-core.
Réponses
Trop de publicités?Eh bien, le mot-clé était parallèle . Après avoir cherché tous les outils de compression qui étaient aussi parallèle J'ai trouvé ce qui suit :
PXZ - Parallel XZ est un utilitaire de compression qui tire profit de l'exécution de LZMA de différentes parties d'un fichier d'entrée sur plusieurs cœurs et processeurs processeurs simultanément. Son objectif principal est d'utiliser toutes les ressources pour ressources pour accélérer le temps de compression avec une influence minimale possible sur le ratio.
sudo apt-get install pxz
PLZIP - Lzip est un compresseur de données sans perte basé sur l'algorithme LZMA, avec un contrôle d'intégrité très sûr et une interface utilisateur similaire à celle de gzip ou bzip. d'intégrité très sûr et une interface utilisateur similaire à celle de gzip ou bzip2. Lzip décompresse presque aussi vite que gzip et compresse mieux que bzip2, ce qui le rend bien adapté à la distribution de logiciels et à l'archivage de données.
Plzip est une version massivement parallèle (multithread) de lzip qui utilise le format de fichier lzip. les fichiers produits par plzip sont entièrement compatibles avec lzip.
Plzip est destiné à la compression/décompression plus rapide de gros fichiers sur des multiprocesseurs, ce qui en fait un outil particulièrement adapté à la distribution de gros fichiers logiciels et l'archivage de données à grande échelle. Sur des fichiers assez gros, plzip peut utiliser des centaines de processeurs.
sudo apt-get install plzip
PIGZ - pigz, qui signifie Parallel Implementation of GZip, est un remplacement entièrement fonctionnel de gzip. pleinement fonctionnel qui tire parti de plusieurs processeurs et de plusieurs cœurs lors de la cœurs lors de la compression des données.
sudo apt-get install pigz
PBZIP2 - pbzip2 est une implémentation parallèle du fichier de tri par bloc bzip2. trieurs de blocs bzip2, qui utilise les pthreads et atteint une vitesse quasi-linéaire sur les machines SMP . Le résultat de cette version est entièrement compatible avec bzip2 v1.0.2 (c'est-à-dire que tout ce qui est compressé avec pbzip2 peut être décompressé avec bzip2).
sudo apt-get install pbzip2
LRZIP - Un programme de compression multithread qui permet d'atteindre une compression très élevée très élevés lorsqu'il est utilisé avec des fichiers volumineux. Il utilise les algorithmes combinés algorithmes de compression combinés de zpaq et lzma pour une compression maximale, lzo pour une vitesse maximale, et la réduction de la redondance à longue portée de rzip. Il est conçu pour s'adapter à l'augmentation de la taille de la RAM, ce qui améliore encore la compression. la compression. Le choix de l'optimisation de la taille ou de la vitesse permet d'obtenir soit une meilleure compression que lzma, soit une meilleure vitesse que gzip. une meilleure vitesse que gzip, mais avec des niveaux de compression de la taille de bzip2.
sudo apt-get install lrzip
Un petit benchmark de compression (en utilisant le test créé par Oli) :
TAILLE DU FICHIER ORIGINAL - 100 MB
PBZIP2 - 101 MB (1% plus gros)
PXZ - 101 MB (1% plus grand)
PLZIP - 102 MB (1% plus grand)
LRZIP - 101 MB (1% plus gros)
PIGZ - 101 MB (1% plus grand)
Un petit benchmark de la compression (en utilisant un fichier texte) :
TAILLE DU FICHIER ORIGINAL - 70 KB Fichier texte
PBZIP2 - 16.1 KB (23%)
PXZ - 15.4 KB (22%)
PLZIP - 15.5 KB (22.1%)
LRZIP - 15.3 KB (21.8%)
PIGZ - 17.4 KB (24.8%)
Il existe deux outils principaux. lbzip2
et pbzip2
. Ce sont essentiellement des implémentations différentes des compresseurs bzip2. Je les ai comparés (la sortie est une version simplifiée mais vous devriez être capable d'exécuter les commandes).
cd /dev/shm # we do all of this in RAM!
dd if=/dev/urandom of=bigfile bs=1024 count=102400
$ lbzip2 -zk bigfile
Time: 0m3.596s
Size: 105335428
$ pbzip2 -zk bigfile
Time: 0m5.738s6
Size: 10532460
lbzip2
semble être le gagnant sur des données aléatoires. Il est légèrement moins compressé mais beaucoup plus rapide. YMMV.
Mise à jour :
XZ Utils supporte la compression multithread depuis la v5.2.0, elle était à l'origine documentée par erreur comme étant une décompression multithread.
Par exemple : tar -cf - source | xz --threads=0 > destination.tar.xz
En plus du bon résumé ci-dessus (merci Luis), de nos jours, les gens pourraient également vouloir considérer PIXZ, qui selon son README (Source : https://github.com/vasi/pixz -- Je n'ai pas vérifié ces affirmations moi-même) présente certains avantages par rapport au PXZ.
[Compared to PIXZ, PXZ has these advantages and disadvantages:]
* Simpler code
* Uses OpenMP instead of pthreads
* Uses streams instead of blocks, not indexable
* Uses temp files and doesn't combine them until the whole file is compressed, high disk/memory usage
En d'autres termes, PIXZ est censé être plus efficace en termes de mémoire et de disque, et dispose d'une fonction d'indexation optionnelle qui accélère la décompression des composants individuels des fichiers tar compressés.
Zstandard supporte le multi-threading depuis v1.2.0 ¹. Il s'agit d'un compresseur et décompresseur très rapide destiné à remplacer gzip et il peut également compresser aussi efficacement (sinon mieux) que LZMA2/XZ sur ses niveaux les plus élevés.
Vous devez utiliser une de ces sorties ou compiler la dernière version à partir des sources pour bénéficier de ces avantages. Heureusement, il n'y a pas beaucoup de dépendances.
Il y avait aussi un pzstd tiers dans la v1.1.0 de zstd.
- Réponses précédentes
- Plus de réponses