¿Qué método de archivo es mejor para comprimir archivos de texto en Linux?

16

En mi aplicación, necesito comprimir los registros que son archivos de texto.

Parece eso bzip2y gziptienen la misma relación de compresión.

¿Es eso correcto?

usuario710818
fuente
xz (de xz-tools o 7z de p7zip, es muy parecido a lzma) es el mejor. bzip2 es mejor que gzip.
osgx

Respuestas:

4

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.

glglgl
fuente
xz es más lento que bzip2.
osgx
xz no solo es más lento, sino mucho más lento, el archivo de 300 mb tardó unos 30 segundos en comprimir bzip2. Maté a xz después de haber estado comprimiendo durante más de 5 minutos
Tebe
@ Копать_Шо_я_нашел Creo que depende en gran medida del nivel de compresión que elija. Con -1, no es tan lento, pero con la configuración predeterminada, tiende a ser bastante lento.
glglgl
7

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:

Detalles:
Byron Knoll se está desarrollando activamente cmixcomo 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

lrzipes una evolución de rzippor Con Kolivas .
lrzipsignifica dos nombres: Long Range ZIP y Lzma RZIP .
lrzipA 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 zpaqversió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
olibre
fuente
1

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/

Abdalla Mohamed Aly Ibrahim
fuente
0

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.

Rich Homolka
fuente
0

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.

Tom
fuente