En mi aplicación, necesito comprimir los registros que son archivos de texto.
Parece eso bzip2
y gzip
tienen la misma relación de compresión.
¿Es eso correcto?
En mi aplicación, necesito comprimir los registros que son archivos de texto.
Parece eso bzip2
y gzip
tienen la misma relación de compresión.
¿Es eso correcto?
Respuestas:
Normalmente, bz2 tiene una mejor relación de compresión, combinada con mejores características de recuperación.
OTOH, gz es más rápido.
Se dice que xz es incluso mejor que bz2, pero no sé el comportamiento del tiempo.
-1
, no es tan lento, pero con la configuración predeterminada, tiende a ser bastante lento.
La última actualización de maximumcompression.com es junio de 2011 (respuesta actualizada en octubre de 2015)
Por lo tanto, este sitio web no menciona
el compresor de texto campeón actual en todo el mundo :
cmix
Competiciones / Benchmarks:
cmix
no es el ganador porque requiere demasiada RAM, más de 20GB)Detalles:
Byron Knoll se está desarrollando activamente cmix
como software libre (GPL) desde 2013 basado en el libro Compresión de datos explicado por Matt Mahoney . Matt Mahoney también mantiene algunos de los puntos de referencia anteriores y propone ZPAQ ( WP ), un archivador incremental de línea de comandos.
Si prefiere una herramienta más estándar (que requiere menos RAM), le recomiendo:
lrzip
lrzip
es una evolución de rzip
por Con Kolivas .
lrzip
significa dos nombres: Long Range ZIP y Lzma RZIP .
lrzip
A menudo es mejor que xz
(otra herramienta de compresión popular).
Alexander Riccio también recomienda lrzip
.
Mi favorito es:
zpaq
El "experto en archivadores" , Matt Mahoney , ha trabajado intensamente en algoritmos PAQ durante diez años y proporciona el mejor compromiso entre los recursos de CPU / memoria y el nivel de compresión.
Sin embargo, la última zpaq
versión no suele estar empaquetada / disponible en la distribución reciente :-(
Siempre la compilo desde las fuentes cuando tengo una nueva máquina y necesito un muy buen compresor: https://github.com/zpaq/zpaq
clone https://github.com/zpaq/zpaq
cd zpaq
g++ -O3 -march=native -Dunix zpaq.cpp libzpaq.cpp -pthread -o zpaq
Tal vez podría echar un vistazo a esos puntos de referencia , especialmente la parte que prueba la compresión de los archivos de registro .
Yo he hecho un punto de referencia para la prueba para comprimir el siguiente:
carpeta de 204 MB (con archivos html) 1600
resultados
7zip => 2.38 MB
winrar => 49.5 MB
zip => 50.8 MB
gzip => 51.9 MB
así que el 7zip es el mejor de ellos, puedes obtenerlo aquí
http://www.7-zip.org/
bz2 tiene una compresión más ajustada, el algoritmo tiene más opciones para buscar redundancia para comprimir.
gzip está en muchas más herramientas, y es más multiplataforma. Más herramientas de Windows pueden manejar archivos .gz. Es parte de http, por lo que incluso los navegadores web pueden entenderlo.
En Linux, hay herramientas que le permiten trabajar directamente en archivos comprimidos. zgrep y bzgrep pueden buscar en archivos comprimidos.
Si solo estuviera en Linux, usaría bzip2, para las relaciones de compresión ligeramente mejores.
xz comprime mucho mejor que bz2, pero lleva más tiempo. Entonces, si su objetivo es la compresión máxima y el espacio en su disco duro es muy alto (que es mi caso con una unidad al 98% llena, mientras reorganizo mis sistemas de archivos), y puede activar un script para hacer el trabajo - Tómese un descanso y regrese en 5 minutos.
Unxz es muy rápido para descomprimir en mi experiencia, lo cual es algo bueno para mí a diario.
bz2 es más rápido de comprimir que xz, pero no parece lograr los resultados de compresión de xz.
La única forma de realizar estas evaluaciones es ejecutar puntos de referencia con una combinación de archivos comunes que normalmente comprimiría / descomprimiría, y variará los parámetros para ver cuál sale en primer lugar.