Compresión extrema 
lunes, enero 19, 2009, 09:27 PM - Tecnología
Para un cliente tuve que usar una lista de claves típicas para probar la "dureza" de unas contraseñas. Hay muchas herramientas que pueden hacer ataques de diccionario, como el inefable John The Ripper . Pues nada. A buscar por Internet un fichero con claves típicas, en varios idiomas, y con permutaciones. Y lo encontré.

El fichero de claves que encontré ocupa casi 1,9 gigabytes. Una barbaridad de fichero. Inmenso. Gigantesco. Monstruoso. Titánico.

Por estas _malignas_ casualidades del destino, tenía que mandarle por correo electrónico a una persona este fichero de claves. Pues nada, a comprimir. Se lo pasé en varios correos, como es lógico, en uno sólo no cabía, el límite máximo de cada mensaje era de 10 megabytes.

Hace dos fines de semana no tenía Internet en casa, (des)cortesía de mi proveedor. Y el domingo por la tarde, diluviaba. El aburrimiento es mal compañero. Así que me puse a leer de compresión de datos, me vino a la cabeza el megafichero este de 1,9 gigabytes de texto. Lo que quería era compresión extrema, independientemente del tiempo que tarde.

Primer recurso: Maximum Compression. Leer. Leer mucho. Que interesante está esto, la verdad.

Segundo: Wikipedia. Leer. Leer mucho. Leer los enlaces a los que apunta la wikipedia. Dormir menos entre semana para leer. Más interesante aún

Me puse a probar. Cogí el megafichero de claves y probé varios compresores, desde los más típicos ( gzip, bzip2 y rar ) a otros más "exóticos" como 7zip o Paq8p.

Repito: lo que yo buscaba era compresión extrema, independientemente del tiempo que tarde en comprimir. Estos son los resultados:
Fichero sin comprimir: 1,9 gigabytes (2.011.399.369 bytes).

Zip y Gzip: 184 megabytes. Aproximadamente 7 minutos.
bzip2: 169 megabyes. Aproximadamente 9 minutos.
RAR: 153 megabytes. Aproximadamente 8 minutos.
7zip: 75 megabytes. Aproximadamente 11 minutos.
Paq8p: 17 megabytes. Casi 3 días.

A la vista de estos resultados, el ganador es paq8p con una gran ventaja sobre el segundo clasificado, 7zip. Pero esta ventaja la consigue a costa de tardar una barbaridad más.

Hay varias cosas que me sorprenden. Lo primero, que casi ningún compresor es capaz de aprovechar más de un procesador, a excepción de RAR y de una versión especializada de bzip2 ( pbzip2 ), ninguno de los compresores que he probado aprovechan que haya múltiples procesadores o cores.

Se muy poco de compresión de datos. Muy, muy poco. Por lo poquito que se, y simplificando, un compresor trabaja cogiendo un bloque de datos e intentando reducir su tamaño empleando diversas técnicas. A priori, no se me ocurre la razón por la que un compresor no debería ser fácilmente paralelizable. Seguro que hay algo que se me escapa.

Es una pena que algunos de los compresores anteriores no soporten sistemas con más de un procesador/core. Es bastante común encontrarse hoy en día con máquinas con 4, 8 o más cores, por lo que el tiempo de compresión se podría reducir bastante.

Respecto al compresor Paq8p, sus resultados son impresionantes. Pero tiene bastantes pegas: la primera es que tarda una barbaridad en comprimir. La segunda es que usa la friolera de 1.600 megabytes de ram (si, si, está bien escrito) para comprimir a máxima potencia y por último, que tarda casi lo mismo en comprimir que en descomprimir. Una pasada, vamos.

Por tanto, si uno va a usar un compresor para hacer backups de tus propias cosas, le recomiendo que use 7zip. Si lo que quiere es intercambiar datos con otras personas, lo más cómodo es zip. En ambientes UNIX/Linux, bzip2. Y si uno es un "agonía", pues nada, paq8p y mucha paciencia.

Paq8p no deja de ser una prueba de concepto académica. No se me ocurre ninguna aplicación práctica de uso de este compresor. El tiempo que tarda es demasiado alto, consume mucha memoria y lo que es peor, el tiempo de descompresión es muy alto también.

Si alguien quiere detalles de la máquina empleada para hacer las pruebas los tiene aquí. Las opciones de compresión usadas en los compresores están en este enlace.

Por último, si alguien tiene interés en el megafichero de claves, pues lo tiene aquí en diversos formatos de compresión.




[ 1 comentario ] ( 831 visualizaciones )   |  [ 0 trackbacks ]   |  enlace permanente  |   ( 3 / 582 )

<< <Anterior | 1 | 2 | 3 | 4 | 5 | 6 | Siguiente> >>


eXTReMe Tracker