Comparatif, formats et algorithmes de compression

Voici un comparatif assez simple de quelques formats/algorithmes de compression. Je l’ai d’abords fait pour mes besoins personnels, mais autant en faire profiter au plus grand nombre. Le but ici, est avant tout de savoir quel format/algorithme (lié à l’archive tar) a le plus fort taux de compression.

Ces quelques test m’ont permis d’en apprendre un peu plus sur les méandres la compression. Aussi, il faut garder à l’esprit que je suis un novice en la matière, il est donc probable qu’une ou plusieurs coquilles soient présentes dans cette article, n’hésitez donc pas à me faire un retour.

Avant de commencer

  • Les tailles sont exprimées en octets.
  • Les mesures de tailles ont été réalisé avec la commande wc.
  • Le temps de compression est mesuré avec la commande time, la réponse real est utilisée.
  • Le taux de compression qui est utilisé est celui par défaut.
  • La machine test est composé de :
    • AMD FX-6350
    • 16 GB de RAM
    • SSD Samsung 850 EVO 250GB
    • Debian Testing amd64
    • Kernel 4.9.0-2

Les tests portent sur les éléments ci-dessous :

Types de fichier Nb. de fichier Tailles en octets Notes
livre epub 1 477.930 Dracula de Bram Stoker
mp3 1 5.883.728 extrait de l’album Pornophonique (licence CC 2.0)
ROM Nintendo 64 1 33.554.432 Legend of Zelda, The Ocarina of Time
image disque .cdi 1 41.511.609 jeu Dreamcast,  Portage de Völgarr The Viking
sources 4499 65.117.653 sources de pcsx2 (v1.5.0-dev) (écrit à 76.0% en C++, et à 18.4% en C)
mp4 1  1.572.023.339 reportage The Internet’s Own Boy (licence CC 4.0), h264+AAC

Formats de fichier, algorithmes, et commandes

Le tableau ci-dessous décrit les algorithmes, formats de fichiers, et commandes utilisées pour les tests.

Ext. Algo. Form. Commandes
.tar.Z LZW Z tar cvfZ archive.tar.Z Fichier
.tar.bz2 Bzip2 bzip2 tar cvfj archive.tar.bz2 Fichier
.tar.gz Deflate gzip tar cvfz archive.tar.gz Fichier
.tar.lrz LZ77 et LZMA lrzip tar cvf archive.tar Fichier && lrzip archive.tar
.tar.lzo LZO lzop tar cvf archive.tar Fichier && lzop archive.tar
.tar.xz LZMA xz tar cvfJ archive.tar.xz Fichier

Résultats

Conclusion

Sommairement, que nous apprennent ces tests :

  • compresser des médias déjà compressés est toujours inutile.
  • le tar.Z est dépassé dans tous les tests.
  • le tar.lzo ne compresse pas grand chose, mais travail à une vitesse très élevée.
  • le tar.bz2 est moyen, en terme de temps et de compression.
  • le tar.gz est lui aussi moyen, mais sa rapidité n’est pas à négligée.
  • le tar.lrz est lent sur la compression d’un petit fichier, mais s’avère véloce et puissant dés lors qu’ils sont nombreux et/ou gros.
  • le tar.xc est clairement un monstre de lenteur, mais c’est aussi le plus performant en compression.

Maintenant à vous de choisir, suivant vos besoins. Pour ma part ce sera le tar.xc, parce que après tout, à compresser, autant le faire à fond.

2 Commentaires

  1. Jocker Papi
    304 messages

    WillyOz:

    Intéressant. Pour comparaison, cela serai bien de le refaire avec : pigz, pbzip2, plzip, pxz…
    Cf astuce découvert chez Sebsauvage : http://sebsauvage.net/links/?DrNtGw
    J’ai testé, c’est vraiment efficace au niveau temps de compression.

    Déjà merci pour l’astuce :)

    Sinon, il est clair que les temps devrait changer. Mais les différences devrait rester les mêmes, étant donner que les algo/extensions sont les mêmes.

    Après, un petit post pour montrer la différence entre la compression “parallel” et non “parallel” n’est pas exclu :)

      Répondre

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser les balises de mise en forme