Entre xz, gzip y bzip2, ¿qué algoritmo de compresión es el más eficiente?
16
Entre xz, gzip y bzip2, ¿qué algoritmo de compresión proporciona el tamaño de archivo más pequeño y la velocidad más rápida al comprimir tarballs bastante grandes?
'el mejor' como en 'resultando en el tamaño de archivo más pequeño'?
Hennes
No sé, estaba tratando de encontrar alguna forma de formular la pregunta para poder agregar mi examen como respuesta. Tampoco tengo idea de por qué esta cosa estaba cerrada. @Karan
Nathan2055
1
Oh, por qué estaba cerrado, es fácil. "Lo mejor" es altamente subjetivo y generalmente conduce a discusiones o respuestas no constructivas. La mejor compresión puede ser el tamaño de archivo más pequeño, la compresión más rápida, la menor potencia utilizada para comprimir (p. Ej., En una computadora portátil), la menor influencia en el sistema durante la compresión (p. Ej., Programas antiguos de una sola cadena que usan solo uno de los núcleos), ... o una combinación de todos esos
Hennes
Un artículo interesante para leer es tomshardware.com/reviews/winrar-winzip-7-zip-magicrar,3436.html (basado en Windows y centrado en 7zip, magicRAR, WinRAR y WinZip en lugar de xz, gz o bz, pero sigue siendo interesante y proporcionar información de fondo).
Hennes
@Hennes - Limpié la publicación para reemplazarla mejor con exactamente lo que estaba investigando. Además, gracias por el artículo que mencionaste, lo leeré más tarde hoy.
Nathan2055
Respuestas:
15
En mi prueba de esfuerzo, comprimí 464 megabytes de datos usando los tres formatos enumerados. Gzip devolvió un archivo de 364 MB. Bzip2 devolvió un archivo de 315 MB. Xz devolvió un archivo de 254 MB. También hice una prueba de velocidad simple:
Compresión:
1: Gzip
2: Xz
3: Bzip2 (mi ventilador estaba funcionando bastante mientras esto funcionaba, lo que indica que mi Athlon II estaba bastante tenso)
Descompresión:
1: Xz
2: Gzip
3: Bzip2
Tenga en cuenta que todas estas pruebas se realizaron con la última versión de 7-Zip.
Xz es el mejor formato para una compresión completa, mientras que Gzip es muy bueno para la velocidad. Bzip2 es decente por su relación de compresión, aunque probablemente debería usarse xz en su lugar.
todos los niveles de compresión en el máximo, CPU Intel I7 3740QM, memoria 32GB 1600, origen y destino en disco RAM
Generalmente uso rar o 7z para archivar archivos normales como documentos.
y para archivar archivos del sistema utilizo .tar.gz o .tar.xz mediante file-roller o tar con las opciones -z o -J junto con --preserve para comprimir de forma nativa con tar y preservar los permisos (también alternativamente .tar.7z o .tar.rar puede ser usado)
actualización: como tar solo conserva los permisos normales y no las ACL de todos modos, también se puede usar .7z plus, además de los permisos de copia de seguridad y restauración y las ACL manualmente a través de getfacl y sefacl, que parece ser la mejor opción para el archivado de archivos o la copia de seguridad de archivos del sistema porque estará lleno preservar permisos y ACL, tiene suma de comprobación, prueba de integridad y capacidad de cifrado, el único inconveniente es que p7zip no está disponible en todas partes
Estudiante, ¿cuáles fueron las opciones de rar? ¿Por qué no probar lrzip by kolivas? Debería funcionar bien para imágenes de disco virtual.
osgx
Estoy migrando de RAR a Git y tarballs para mis archivos de texto y btrfs para todo lo demás; mi razón para usar RAR no es el rendimiento, lo estoy usando debido a características como el registro de recuperación, la suma de comprobación de 256 bits a nivel de archivo para cada archivo y ....
Sudoer
3
Creo que este artículo ofrece resultados muy interesantes.
Los formatos más eficientes en tamaño son xz y lzma, ambos con el parámetro -e pasado.
El algoritmo más rápido es, con diferencia, lzop y lz4, que pueden producir un nivel de compresión no muy alejado de gzip en 1.3 segundos, mientras que gzip tomó 8.1 segundos. La relación de compresión es 2.8 para lz4 y 3.7 para gzip.
Aquí hay algunos resultados que extraje de este artículo:
Gzip: 8.1s @ 3.7
lz4: 1.3s @ 2.8
xz: 32.2s @ 5.43
xz -e: 6m40 @ 7.063
xz: 4m51s @ 7.063
Entonces, si realmente necesita velocidad desesperadamente, lz4 es increíble y aún proporciona una relación de compresión 2.8.
Si necesita desesperadamente ahorrar el byte, xz en el nivel de compresión máximo (9) hace el mejor trabajo para archivos de texto como la fuente del núcleo. Sin embargo, es muy largo y requiere mucha memoria.
Uno bueno donde sea necesario para minimizar el impacto en el tiempo Y el espacio es gzip. Este es el que usaría para hacer copias de seguridad diarias manuales de un entorno de producción.
Respuestas:
En mi prueba de esfuerzo, comprimí 464 megabytes de datos usando los tres formatos enumerados. Gzip devolvió un archivo de 364 MB. Bzip2 devolvió un archivo de 315 MB. Xz devolvió un archivo de 254 MB. También hice una prueba de velocidad simple:
Compresión:
1: Gzip
2: Xz
3: Bzip2 (mi ventilador estaba funcionando bastante mientras esto funcionaba, lo que indica que mi Athlon II estaba bastante tenso)
Descompresión:
1: Xz
2: Gzip
3: Bzip2
Tenga en cuenta que todas estas pruebas se realizaron con la última versión de 7-Zip.
Xz es el mejor formato para una compresión completa, mientras que Gzip es muy bueno para la velocidad. Bzip2 es decente por su relación de compresión, aunque probablemente debería usarse xz en su lugar.
fuente
bzip2 -9 <file>
?Hice mi propio punto de referencia en la imagen vmdk de instalación de Linux de 1.1GB:
todos los niveles de compresión en el máximo, CPU Intel I7 3740QM, memoria 32GB 1600, origen y destino en disco RAM
Generalmente uso rar o 7z para archivar archivos normales como documentos.
y para archivar archivos del sistema utilizo .tar.gz o .tar.xz mediante file-roller o tar con las opciones -z o -J junto con --preserve para comprimir de forma nativa con tar y preservar los permisos (también alternativamente .tar.7z o .tar.rar puede ser usado)
actualización: como tar solo conserva los permisos normales y no las ACL de todos modos, también se puede usar .7z plus, además de los permisos de copia de seguridad y restauración y las ACL manualmente a través de getfacl y sefacl, que parece ser la mejor opción para el archivado de archivos o la copia de seguridad de archivos del sistema porque estará lleno preservar permisos y ACL, tiene suma de comprobación, prueba de integridad y capacidad de cifrado, el único inconveniente es que p7zip no está disponible en todas partes
fuente
Creo que este artículo ofrece resultados muy interesantes.
http://pokecraft.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO
Los formatos más eficientes en tamaño son xz y lzma, ambos con el parámetro -e pasado.
El algoritmo más rápido es, con diferencia, lzop y lz4, que pueden producir un nivel de compresión no muy alejado de gzip en 1.3 segundos, mientras que gzip tomó 8.1 segundos. La relación de compresión es 2.8 para lz4 y 3.7 para gzip.
Aquí hay algunos resultados que extraje de este artículo:
Gzip: 8.1s @ 3.7
lz4: 1.3s @ 2.8
xz: 32.2s @ 5.43
xz -e: 6m40 @ 7.063
Entonces, si realmente necesita velocidad desesperadamente, lz4 es increíble y aún proporciona una relación de compresión 2.8.
Si necesita desesperadamente ahorrar el byte, xz en el nivel de compresión máximo (9) hace el mejor trabajo para archivos de texto como la fuente del núcleo. Sin embargo, es muy largo y requiere mucha memoria.
Uno bueno donde sea necesario para minimizar el impacto en el tiempo Y el espacio es gzip. Este es el que usaría para hacer copias de seguridad diarias manuales de un entorno de producción.
fuente