GNU/Linux >> Tutoriales Linux >  >> Linux

Soporte multiproceso en 7za

Según el interruptor -m (Establecer método de compresión) # ZipMultiThread - Manual y documentación de 7ZIP, mt por defecto es on , por lo que no es necesario especificarlo en absoluto.

Sin embargo, la implementación de 7zip del algoritmo DEFLATE no es compatible con subprocesos múltiples.

Como ya habrás descubierto,

7za a archive.zip bigfile

solo usa un núcleo.

Pero .zip Los archivos comprimen cada archivo individualmente. Al comprimir varios archivos, la opción de subprocesos múltiples comprime un archivo por núcleo a la vez.

Pruébalo y verás que

7za a archive.zip bigfile1 ... bigfileN

utilizará todos los N disponibles núcleos.

Si desea acelerar la compresión de un sencillo archivo, tiene dos opciones:

  1. Dividir bigfile en trozos.

  2. Utilice un algoritmo de compresión diferente.

    Por ejemplo, la implementación de 7zip del algoritmo BZip2 admite subprocesos múltiples.

    La sintaxis es:

    7za a -mm=BZip2 archive.zip bigfile
    

Además, el error de sintaxis se debe a su intento de usar el algoritmo LZM para un .zip envase. Eso no es posible.

Los posibles algoritmos para .zip Los contenedores son DEFLATE(64), BZip2 y sin compresión.

Si desea utilizar el algoritmo LZM, utilice un .7z envase. Este contenedor también maneja los siguientes algoritmos:PPMd, BZip2, DEFLATE, BCJ, BCJ2 y sin compresión.


Esta es una pregunta antigua, y no la respuesta a la pregunta específica, sino una respuesta al espíritu de la pregunta (Uso de todos los núcleos para comprimir un formato zip)

pigz (gzip paralelo con opción .zip)

pigz -K -k archive.zip bigfile txt

Esto le dará un archivo compatible con zip 7 veces más rápido para el mismo nivel de compresión.

Una comparación rápida de compresores compatibles con zip y no zip que utilizan núcleos únicos y múltiples.

wall times en i7-2600k para comprimir un archivo txt de 1.0 gb en fedora 20

67s (120mb) 7za (zip,1 thread)
15s (141mb) 7za -mx=4 (zip,1 thread)
17s (132mb) zip (zip,1 thread)
 5s (131mb) pigz -K -k (zip,8 threads)
 9s (106mb) bsc (libbsc.com) (not zip,8 threads)
 5s (130mb) zhuff -c2 (not zip,8 threads)
 2s (149mb) zhuff (not zip,8 threads)

tiempos de pared para descomprimir

4.2s unzip -t
2.0s pigz -t
5.1s bsc d
0.5s zhuff -d

Linux
  1. ¿Extractores universales?

  2. ¿El estado del soporte de Hidpi en Xfce?

  3. ¿Programa de compresión que muestra la relación de compresión en vivo?

  4. Comando zip de Linux

  5. Métodos de compresión y archivo en Linux

Soporte de transparencia de certificados

Cómo descomprimir archivos en Linux

Cómo agregar soporte de compresión Brotli a Nginx en Debian 10

Cómo habilitar la compresión GZIP en Nginx

Cómo comprimir una carpeta en Linux

¿Qué es más eficiente, la compresión tar o zip? ¿Cuál es la diferencia entre tar y zip?