La comparaison de logiciels de compression de données est assez difficile: toutes les plates-formes ne disposent pas des mêmes logiciels et surtout toutes les implémentations d'algorithmes identiques ne sont pas équivalentes. Parfois, des fonctionnalités spéciales sont possibles: conversion de jeux de caractères, mode pipe, etc. La plupart du temps ce n'est pas le cas. Il y a parfois des problèmes de brevets (particulièrement sur les algorithmes de compression dits arithmétiques).
Les critères de comparaison sont les suivants:
Les informations de la table tabcompression ont été extraites de la FAQ de comp.compression et ont été obtenues à l'aide d'essais effectués sur un jeu standard de fichiers documentés dans cette même FAQ. Ce jeu standard comporte 18 fichiers de différents types (texte, exécutable, image, etc.) totalisant de l'ordre de 3 MB. Le temps doit être évidemment considéré uniquement de façon relative.
Notons que cette comparaison est assez ancienne. J'ai effectué un test similaire pour comparer, dans ce cas précis, les deux compresseurs les plus populaires sous UNIX aujourd'hui (2002), soient gzip et bzip2, avec la compression maximum (-9), sur les mêmes données standards, via une commande tar. On obtient, sur un Mobile Pentium II/366 avec Debian GNU/Linux 2.2 et kernel Linux 2.2.18:
Logiciel | version | famille | taille [octets] | temps |
compression | ||||
gzip | 1.2.4 | LZ77H | 1063917 | 7 secondes |
bzip2 | 0.9.5d | block-sorting | 892778 | 7 secondes |
Ces valeurs sont trompeuses: bzip2 prend normalement bien plus de temps et de mémoire pour compresser que gzip, et parfois (rarement) est moins efficace. Par contre, sur du texte répétitif comme par exemple des articles de news réunis en une archive (format rnews), bzip2 montre toute son efficacité.