El avance de las herramientas de compresión es imparable, aunque a pesar de todo, seguimos usando ZIP como standard defacto debido al elevado grado de compatibilidad que se obtiene.

Sin embargo, el paso de 20 años, no perdonan al formato ZIP, dejándolo algo retrasado en cuanto a grado de compresión sobre alternativas más modernas como 7-Zip o RAR.

Ayudándonos de dos herramientras gratuitas de consola para Windows como KZIP de Ken Silverman y DeflOpt de Ben Jos Walbeehm vamos a intentar ver la mejora que podemos obtener sobre ZIP, sin perder la compatibilidad tradicional. Hablamos por tanto de Deflate, que es virtualmente extraible en cualquier PC de los últimos 35 años.

Como base de las pruebas partimos del ZIP de distribución de Digital Mars C/C++ Compiler Version 8.50 que tiene un peso de 2.877.958 bytes.

Desconozco como se ha generado ese ZIP, así que para tener una idea, lo he recomprimido en ZIP con WinRAR 3.90 a máxima compresión, y ha quedado en 2.856.835 bytes. Con uno de los mejores motores de compresión ZIP, el de 7-Zip 9.07 en su grado de compresión máximo el fichero resultante han sido 2.764.122 bytes (hemos ahorrado 113.836 bytes). Este sería el ahorro que podríamos conseguir sin demasiadas molestias, es decir 111 Kb. sobre un total de 2.810 Kb. no es despreciable, pero tampoco es demasiado.

El ahorro, sale a cuenta si ese programa ZIP debe ser descargado por ejemplo de internet. Entonces tenemos que los ahorros se multiplican por cada descarga. En el caso del citado DigitalMars, es fácil que hablemos de varios miles de descargas diarias, con lo que el ahorro aumenta.

KZIP es un compresor de formato ZIP, diseñado para obtener los mejores grados de compresión, independientemente del coste de tiempo necesario para hacerlo. Con él, hemos conseguido dejar nuestro paquete de pruebas en 2.758.557 bytes (hemos ahorrado 119.401 bytes).

Luego con DeflOpt, que se encarga de eliminar bloques innecesarios en ficheros que usan deflate (permite optimizar por tanto ZIP, PNG, SWF, …), el paquete se ha quedado en 2.756.608 bytes (hemor ahorrado 121.350 bytes).

Así que todo el proceso extra, nos ha permitido un ahorro de apenas 119 Kb., o lo que es lo mismo 8 Kb. menos que el paquete de 7-Zip, una mejora muy pequeña, pero al mismo una mejora que aparte de un consumo de CPU extra al hacer la distribución, es una mejora al fin y al cabo.