Entre xz, gzip et bzip2, quel algorithme de compression est le plus efficace?

16

Entre xz, gzip et bzip2, quel algorithme de compression donne la plus petite taille de fichier et la vitesse la plus rapide lors de la compression de fichiers tarball assez gros?

Nathan2055
la source
«le meilleur» comme «aboutissant à la plus petite taille de fichier»?
Hennes
Je ne sais pas, j'essayais de trouver un moyen de formuler la question afin de pouvoir ajouter mon test comme réponse. Je n'ai également aucune idée pourquoi cette chose a été fermée. @Karan
Nathan2055
1
Oh, pourquoi il a été fermé c'est facile. «Meilleur» est très subjectif et mène généralement à des discussions ou à des réponses non constructives. La meilleure compression peut être la plus petite taille de fichier, la compression la plus rapide, la moindre puissance utilisée pour compresser (par exemple sur un ordinateur portable), la moindre influence sur le système lors de la compression (par exemple, les anciens programmes à bande de roulement unique utilisant un seul des cœurs), ... ou une combinaison de tous ceux-là.
Hennes
Un article intéressant à lire est tomshardware.com/reviews/winrar-winzip-7-zip-magicrar,3436.html (basé sur Windows et se concentrant sur 7zip, magicRAR, WinRAR et WinZip plutôt que xz, gz ou bz, mais toujours intéressant et fournir des informations générales).
Hennes
@Hennes - J'ai nettoyé le poste pour le remplacer au mieux par ce que je recherchais. Aussi, merci pour l'article que vous avez mentionné, je le lirai plus tard dans la journée.
Nathan2055

Réponses:

15

Dans mon test de résistance, j'ai compressé 464 mégaoctets de données en utilisant les trois formats répertoriés. Gzip a renvoyé un fichier de 364 Mo. Bzip2 a renvoyé un fichier de 315 Mo. Xz a renvoyé un fichier de 254 Mo. J'ai aussi fait un simple test de vitesse:

Compression:

1: Gzip

2: Xz

3: Bzip2 (mon ventilateur soufflait un peu pendant que cela se passait, indiquant que mon Athlon II était assez tendu)

Décompression:

1: Xz

2: Gzip

3: Bzip2

Veuillez noter que tous ces tests ont été effectués avec la dernière version de 7-Zip.

Xz est le meilleur format pour une compression complète, tandis que Gzip est très bon pour la vitesse. Bzip2 est décent pour son taux de compression, bien que xz devrait probablement être utilisé à sa place.

Nathan2055
la source
2
Bonne recherche. Avez-vous essayé les différentes options de niveau de compression proposées par (au moins) bzip2, par exemple bzip2 -9 <file>?
Aaron Miller
@AaronMiller - Non, est-il possible de les utiliser via 7-Zip?
Nathan2055
Il semble que oui, mais je ne sais pas dans quelle mesure: voir dotnetperls.com/7-zip-examples , section "Switch m".
Aaron Miller
7
Par curiosité, quel type de données était le fichier de test?
GeminiDomino
Notez que différents types de données entraîneront différentes tailles compressées. Voir ici pour des exemples.
Ploni
4

J'ai fait mon propre benchmark sur une image vmdk d'installation Linux de 1,1 Go:

rar    =260MB   comp= 85s   decomp= 5s
7z(p7z)=269MB   comp= 98s   decomp=15s
tar.xz =288MB   comp=400s   decomp=30s
tar.bz2=382MB   comp= 91s   decomp=70s
tar.gz =421MB   comp=181s   decomp= 5s

tous les niveaux de compression sur max, CPU Intel I7 3740QM, mémoire 32 Go 1600, source et destination sur disque RAM

J'utilise généralement rar ou 7z pour l'archivage de fichiers normaux comme des documents.
et pour l'archivage des fichiers système, j'utilise .tar.gz ou .tar.xz par file-roller ou tar avec les options -z ou -J avec --preserve pour compresser nativement avec tar et conserver les autorisations (également alternativement .tar.7z ou .tar.rar peut être utilisé)

mise à jour: comme tar ne conserve que les autorisations normales et non les listes de contrôle d'accès de toute façon, également les autorisations de sauvegarde et de restauration simples et. préserver les autorisations et les listes de contrôle d'accès, a une somme de contrôle, un test d'intégrité et une capacité de cryptage, le seul inconvénient est que p7zip n'est pas disponible partout

Sudoer
la source
Étudiant, quelles étaient les options de rar? Pourquoi ne pas essayer lrzip par kolivas , cela devrait bien fonctionner pour les images de disque virtuel.
osgx
Je migre de RAR vers Git et tarballs pour mes fichiers texte et btrfs pour tout le reste; ma raison d'utiliser RAR n'est pas la performance, je l'utilise en raison de fonctionnalités telles que l'enregistrement de récupération, la somme de contrôle 256 bits distincte au niveau fichier pour chaque fichier et ....
Sudoer
3

Je pense que cet article fournit des résultats très intéressants.

http://pokecraft.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO

Les formats les plus efficaces en termes de taille sont xz et lzma, tous deux avec le paramètre -e transmis.

Les algorithmes les plus rapides sont de loin lzop et lz4 qui peuvent produire un niveau de compression pas très loin de gzip en 1,3 seconde alors que gzip a pris 8,1 seconde. Le taux de compression est de 2,8 pour lz4 et de 3,7 pour gzip.

Voici quelques résultats que j'ai extraits de cet article:

  • Gzip: 8,1 s à 3,7

  • lz4: 1,3 s à 2,8

  • xz: 32,2 s à 5,43

  • xz -e: 6m40 @ 7.063

  • xz: 4m51s @ 7.063

Donc, si vous avez vraiment besoin de vitesse, lz4 est génial et offre toujours un taux de compression de 2,8.

Si vous avez désespérément besoin d'épargner l'octet, xz au niveau de compression maximum (9) fait le meilleur travail pour les fichiers texte comme la source du noyau. Cependant, il est très long et prend beaucoup de mémoire.

Un bon là où c'est nécessaire pour minimiser l'impact sur le temps ET l'espace est gzip. C'est celui que j'utiliserais pour effectuer des sauvegardes quotidiennes manuelles d'un environnement de production.

Johnride
la source