2010
05.26

Llevo mucho tiempo utilizando sistemas GNU/Linux, y eso suele significar que a veces me veo obligado a descargar el código fuente de algún programa si quiero utilizarlo. Siempre me ha llamado la atención el hecho de que no parece haber un acuerdo sobre qué formato de archivos utilizar, y por lo tanto me ha entrado la curiosidad de saber qué compresor funciona mejor.

Para estas pruebas he seleccionado los tres compresores más comunes en GNU/Linux, a saber:

  • bzip2 (.bz2)
  • gzip (.gz)
  • zip (.zip)

Y he hecho lo siguiente:

  • Comprimir y descomprimir el código fuente del kernel de Linux.
  • Comprimir y descomprimir mi carpeta de fotos.
  • Comprimir y descomprimir varios ficheros de sonido en formato wav.

Vamos con los datos de la primera prueba:

Tiempo de empaquetado y compresión Ratio de compresión Tiempo de descompresión y desempaquetado
bzip2 3m 44,507s 17,00% 42,306s
gzip 2m 47,167s 22,02% 29,413s
zip 2m 15,670s 26,94% 39,020s

En la segunda prueba las fotos se han añadido todas previamente a un fichero tar, y por lo tanto la prueba solo contempla el tiempo de compresión (en la descompresión, para seguir el mismo criterio, tampoco se desempaqueta nada):

Tiempo de compresión Ratio de compresión Tiempo de descompresión
bzip2 17m 10,388s 94,34% 8m 26,888s
gzip 05m 34,552s 95,51% 3m 21,306s
zip 06m 49,620s 95,51% 4m 31,091s

Finalmente la tercera prueba es quizá la menos realista (los ficheros wav los comprimo a MP3 o a algún formato sin pérdida para poder escucharlos sin que se coman todo mi disco duro) pero aquí quedan los resultados:

Tiempo de empaquetado y compresión Ratio de compresión Tiempo de descompresión y desempaquetado
bzip2 11m 35,831s 84,53% 4m 57,234s
gzip 05m 49,619s 88,60% 2m 03,705s
zip 03m 47,146s 88,60% 2m 00,012s

No entraré a valorar cuál de los tres programas realiza mejor su tarea, porque a la comparativa le faltan datos y es mejorable en su elaboración, así que me limito a dejar aquí los datos obtenidos por si alguien les encuentra utilidad.