web-dev-qa-db-fra.com

Entre XZ, GZIP et BZIP2, quel algorithme de compression est le plus efficace?

Entre XZ, GZIP et BZIP2, quel algorithme de compression donne la taille de fichier la plus petite et la vitesse la plus rapide lors de la compression des tagelles assez grandes?

16
Nathan2055

Dans mon test de stress, j'ai compressé 464 mégaoctets de données utilisant les trois formats énuméré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 test de vitesse simple:

Compression:

1: gzip

2: XZ

3: BZIP2 (mon fan soufflait un peu si cela allait, 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 la compression bien arrondie, tandis que Gzip est très bon pour la vitesse. BZIP2 est décent pour son ratio de compression, bien que XZ soit probablement utilisé à sa place.

15
Nathan2055

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

http://pokecraft.first-world.info/wiki/Quick_Benchmmmmmmmmmark:_gzip_vs_bzip2_vs_lzma_vs_xz_vs_lz4_vs_lzo

Les formats les plus efficaces de taille sont XZ et LZMA, tous deux avec le paramètre -E passé.

L'algorithme le plus rapide est de loin lzop et lz4 qui peut produire un niveau de compression non très loin de GZIP en 1,3 seconde pendant que GZIP a pris 8,1 seconde. Le taux de compression est de 2,8 pour LZ4 et 3,7 pour GZIP.

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

  • GZIP: 8.1S @ 3.7

  • lz4: 1.3s @ 2.8

  • xZ: 32.2S @ 5.43

  • xZ -E: 6m40 @ 7.063

  • xZ: 4m51s @ 7.063

Donc, si vous avez vraiment besoin de vitesse de besoin, LZ4 est génial et fournit toujours un ratio de compression 2.8.

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

Un bon endroit où il faut minimiser l'impact sur le temps et l'espace est GZIP. C'est celui que j'utiliserais pour faire des sauvegardes quotidiennes manuelles d'un environnement de production.

3
Johnride