Les performances des différents outils de compression sous GNU/Linux

Intro

Vu qu'il y en a un grand nombre disponible, je voulais savoir quels étaient les meilleurs outils pour la compression et decompression sous GNU/Linux. Pour ce faire j'ai effectué différents tests en condition réélles en vu de voir les principales différences en terme de performance.

Environment de test

6 dossiers
  • Pour mes tests j'ai créé six dossiers différents avec les caractéristiques suivantes :
    • AUDIO : 101MB, sept fichiers mp3 et sept fichiers ogg
    • IMG : 102MB, 17 fichiers jpg
    • PDF : 102MB, 68 fichiers pdf
    • RANDOM TXT : 95MB, un gros fichier texte, créé à partir de la commande base64 /dev/urandom | head -c 100000000 > file.txt.
    • MAN TXT : 7.2MB, 870 fichiers man
    • VIDEOS : 290MB, deux fichiers mp4, un fichier mpeg et un fichier webm

Les Outils

7zip

7zip logo
  • Compression : oui
  • Archive : oui
  • Sortie initiale : 1999
  • Divers : ne conserve pas les permissions d'accès

Compression

  • Ajout d'un fichier/répertoire à l'archive :
user@SOURCE:~$ 7z a DEST.7z SOURCE

Décompression

  • Extraire avec le chemin complet :
user@SOURCE:~$ 7z x DEST.7z

bzip2

Bzip2 logo
  • Compression : oui
  • Archivage : non
  • Sortie initiale : 1996

Compression

  • Compression de FILE en FILE.bz2, supprime FILE (-k pour le conserver) :
user@SOURCE:~$ bzip2 -z FILE
  • Même chose mais conserve FILE :
user@SOURCE:~$ bzip2 -c FILE > FILE.bz2

Décompression

  • Décompression de FILE.bz2 en FILE et supprime FILE.bz2 :
user@SOURCE:~$ bzip2 -d FILE

LZ4

  • Compression : oui
  • Archivage : non
  • Sortie initiale : 2011

Compression File

  • Compression de FILE vers FILE.lz4 :
user@SOURCE:~$ lz4 -z FILE FILE.lz4

Décompression

  • Décompression de FILE.lz4 en FILE :
user@SOURCE:~$ lz4 -d FILE.lz4

gzip

Gzip logo
  • Compression : oui
  • Archivage : non
  • Sortie initiale : 1992

Compression

  • Compression de FILE en FILE.gz et supprime FILE (-k pour le conserver) :
user@SOURCE:~$ gzip FILE
  • Même chose mais conserve FILE :
user@SOURCE:~$ gzip -c FILE > FILE.gz

Décompression

  • Décompression de FILE.gz en FILE :
user@SOURCE:~$ gzip -d FILE.gz

xz

  • Compression : oui
  • Archivage : non

Compression

  • Compression de FILE en FILE.xz et suppression de FILE (-k pour le conserver) :
user@SOURCE:~$ xz -z FILE
  • Même chose mais conserve FILE :
user@SOURCE:~$ xz -c FILE > FILE.gz

Décompression

  • Décompression de FILE.xz en FILE :
user@SOURCE:~$ xz -d FILE.xz

zip

  • Compression : oui
  • Archivage : oui
  • Sortie initiale : 1989
  • Divers : ne conserve pas les permissions d'accès

Compression

  • Compresse le fichier vers l'archive :
user@SOURCE:~$ zip FILE.zip FILE
  • Compresse le répertoire vers l'archive :
user@SOURCE:~$ zip -r DIR.zip DIR

Décompression

  • Décompression de FILE.zip :
user@SOURCE:~$ unzip FILE.zip

zstd

zstd logo
  • Compression : oui
  • Archivage : non
  • Sortie initiale : 2015

Compression

  • Compression de FILE en FILE.zstd :
user@SOURCE:~$ zstd -z FILE.zst

Décompression

  • Décompression de FILE.zst en FILE :
user@SOURCE:~$ zstd -d FILE.zst

Résultats des tests

Commande utilisée

La commande suivante permet de mesurer la taille des éléments avant et après compression, et également de connaitre le temps d'exécution.

user@SOURCE:~$ echo "BEFORE : $(du -sh "AUDIO")"; time ( tar --gzip -cvf "AUDIO".tar.gz "AUDIO" ); echo "AFTER : $(du -sh "AUDIO".tar.gz)"
BEFORE : 101M	AUDIO
AUDIO/
AUDIO/The_Dolphins_-_Demo_-_Easy_Way.mp3
AUDIO/The_Dolphins_-_Demo_-_Easy_Way.ogg
AUDIO/The_Dolphins_-_Demo_-_Illusions_And_Witnesses.mp3
AUDIO/The_Dolphins_-_Demo_-_Illusions_And_Witnesses.ogg
AUDIO/The_Dolphins_-_Demo_-_Impro.mp3
AUDIO/The_Dolphins_-_Demo_-_Impro.ogg
AUDIO/The_Dolphins_-_Demo_-_Insubstantial_As_Me.mp3
AUDIO/The_Dolphins_-_Demo_-_Something.ogg
AUDIO/The_Dolphins_-_Demo_-_The_Elements_Of_A_State.mp3
AUDIO/The_Dolphins_-_Demo_-_The_Elements_Of_A_State.ogg
AUDIO/The_Dolphins_-_Demo_-_The_Wisp.mp3
AUDIO/The_Dolphins_-_Demo_-_The_Wisp.ogg
AUDIO/The_Dolphins_-_Demo_-_Unnecessary_Evil.mp3
AUDIO/The_Dolphins_-_Demo_-_Unnecessary_Evil.ogg

real	0m3,390s
user	0m3,294s
sys	0m0,167s
AFTER : 101M	AUDIO.tar.gz

Tableau Récapitulatif

Tests réalisés avec un Intel(R) Core(TM) i3-4360 CPU @ 3.70GHz
Outils Médias Taille initiale Taille Compressée Taux de Compression Temps de Compression Commande Temps de Décompression Commande
Compression Décompression
7zip AUDIO 101MB 101MB 0% 11s 7z a DEST.7z SOURCE 0.8s 7z x DEST.7z
IMG 102MB 102MB 0% 12s 0.8s
PDF 102MB 78MB 24% 10s 3s
MAN TXT 7.2MB 1.4MB 85% 1.4s 0.0s
RANDOM TXT 96MB 74MB 23% 15s 4.2s
VIDEOS 290MB 288MB 1% 33s 2s
bzip2 AUDIO 101MB 101MB 0% 13s tar --bzip2 -cvf DEST.tar.bz2 SOURCE 7.7s tar --bzip2 -xvf DEST.tar.bz2 -C ./
IMG 102MB 101MB 1% 12s 7.7s
PDF 102MB 80MB 22% 12.5s 6.2s
MAN TXT 7.2MB 1.2MB 83% 0.4s 0.2s
RANDOM TXT 96MB 73MB 24% 10s 5.8s
VIDEOS 290MB 289MB 0% 37s 25s
LZ4 AUDIO 101MB 101MB 0% 0.1s tar cvf - SOURCE | lz4 > DEST.tar.lz4 0.0s tar -I lz4 -xvf DEST.tar.lz4 -C ./
IMG 102MB 102MB 0% 0.1s 0.0s
PDF 102MB 84MB 18% 0.2s 0.1s
MAN TXT 7.2MB 2.3MB 68% 0s 0.0s
RANDOM TXT 96MB 96MB 0% 0s 0.0s
VIDEOS 290MB 290MB 0% 0.4s 0.2s
gzip AUDIO 101MB 101MB 0% 3.4s tar --gzip -cvf DEST.tar.gz SOURCE 0.7s tar --gzip -xvf DEST.tar.gz -C ./
IMG 102MB 102MB 0% 3.4s 0.68s
PDF 102MB 83MB 19% 3.4s 0.63s
MAN TXT 7.2MB 1.5MB 79% 0.2s 0.0s
RANDOM TXT 96MB 73MB 24% 4.3s 0.68s
VIDEOS 290MB 289MB 0% 9.3s 1.6s
xz AUDIO 101MB 101MB 0% 37s tar --xz -cvf DEST.tar.xz SOURCE 0.9s tar --xz -xvf DEST.tar.xz -C ./
IMG 102MB 102MB 0% 38s 0.39s
PDF 102MB 78MB 24% 12.5s 3.3s
MAN TXT 7.2MB 1.1MB 85% 2.3s 0.08s
RANDOM TXT 96MB 74MB 23% 40s 4.9s
VIDEOS 290MB 288MB 1% 1m46s 3s
zip AUDIO 101MB 101MB 0% 3s zip -q -r DEST.zip SOURCE 0.7s unzip DEST.zip
IMG 102MB 102MB 0% 3s 0.6s
PDF 102MB 83MB 19% 3s 0.6s
MAN TXT 7.2MB 2MB 72% 4s 0.06s
RANDOM TXT 96MB 73MB 24% 4s 0.6s
VIDEOS 290MB 289MB 0% 8s 1.6s
zstd AUDIO 101MB 101MB 0% 0.4s tar --zstd -cvf DEST.tar.zst SOURCE 0.4s tar --zstd -xvf DEST.tar.zst -C ./
IMG 102MB 102MB 0% 0.3s 0.1s
PDF 102MB 79MB 23% 0.35s 0.1s
MAN TXT 7.2MB 1.4MB 81% 0.05s 0.02s
RANDOM TXT 96MB 72MB 25% 0.24s 0.15s
VIDEOS 290MB 290MB 0% 0.8s 0.26s
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :