Normalmente uso WinRAR sobre 7-Zip simplemente porque es más rápido y solo un poco menos eficiente con la compresión. Hice algunas pruebas en diferentes tipos y tamaños de archivos comparando la configuración predeterminada de 7-Zip y WinRAR en su compresión normal y su mejor compresión, y en muchos casos WinRAR fue 50% más rápido y en algunos fue realmente 100% más rápido. Pero, me gusta más el software libre. Asi que aqui están mis preguntas:
- ¿Hay alguna manera de acelerar 7-Zip? Me gustaría al menos estar a la par con la velocidad de WinRAR
- ¿Hay alguna manera de hacer segmentos de recuperación en 7-Zip como puede hacerlo en WinRAR? No vi ninguno, pero supongo que podría ser una línea de comando.
- Probé WinRAR y 7-Zip usando la última versión estable de cada uno (4 puntos con 7-Zip). ¿La versión beta 9.x es notablemente más rápida en la compresión?
Estoy hablando de más rápido en una configuración comparable en WinRAR, no solo bajando a una compresión mínima.
Si es importante, utilizo un Intel i7 720 de cuatro núcleos (1.6 GHz) / (2.8 GHz) con 4 GB de RAM DDR3, y la versión de 64 bits de 7-Zip, y Debian x64 5.0.4 de arranque dual y Windows 7 Casa.
Respuestas:
Si obtienes la versión beta de 7-Zip 9.13 , puedes cambiar el tipo de archivo a LZMA2 y así poder usar tantos hilos como quieras, aunque el uso de la memoria aumenta fenomenalmente.
Instale la versión beta, haga clic con el botón derecho en las cosas que desea archivar y luego en el menú de contenido de 7-Zip haga clic en "Agregar al archivo ..." y obtendrá algo similar a la ventana a continuación. En el lado izquierdo, debajo del Método de compresión, debe encontrar "LZMA2", que le permitirá cambiar el número de subprocesos, que será una opción un poco más abajo.
Esto tiene el potencial de aumentar enormemente el rendimiento en procesadores> 2 núcleos, ya que puede ajustarse mejor a su sistema, y el método de compresión normal solo puede manejar 2 hilos como máximo.
El "/ 1" que ve a la derecha del cuadro de selección de número de hilos en la imagen es el número de procesadores en su sistema y, por lo tanto, el número recomendado de hilos. Mi i7 es un procesador de cuatro núcleos pero tiene hyperthreading (que en realidad ayuda aquí, por cierto), por lo que se muestra como "/ 8"
fuente
Como cada subproceso parece comprimir varios archivos al mismo tiempo, lo mejor que puede hacer para aumentar el rendimiento de trabajos zip muy grandes es establecer subprocesos en 1, para asegurarse de que su disco duro buscará un archivo a la vez.
Mejoramos el rendimiento en todos nuestros procedimientos diarios de copia de seguridad zip agregando
-mmt=off
a la línea de comando 7-zip. Nuestra copia de seguridad del "repositorio visual SVN", que está hecho de múltiples archivos pequeños, tomaba entre 50 y 60 minutos.¡Con
-mmt=off
, ahora siempre lo hacemos en menos de cinco minutos! Y, durante estos 50 minutos, todos nuestros servidores fueron muy lentos debido a la búsqueda de discos duros. Ahora, todo sigue siendo muy rápido durante esos cinco minutos.Para todo lo que hace en una máquina, la actividad del disco duro siempre será más lenta que la capacidad de su CPU. Puede aumentar el rendimiento del disco deshabilitando actividades paralelas y asegurándose de que el disco duro lea (y escriba) sus archivos uno por uno en serie.
También es mejor leer desde el disco1 y escribir su ZIP en el disco2, ya que el cabezal físico no se mueve de lectura a escritura.
Línea de muestra para obtener la máxima velocidad ZIP mientras mantiene el rendimiento de su máquina:
D:
yT:
son 2 discos físicos diferentesfuente
-mx=1
(que casi no tiene compresión). Si no está comprimiendo, el HDD realiza la mayor parte del trabajo. Si configura-mx=9
los procesadores realmente necesita trabajar para comprimir el archivo. Tendría que intentarlo, pero dependiendo de cuál sea el cuello de botella (HDD o CPU), podría ser mejor o peor.-mmt=off
es más rápido incluso con-m0=lzma2 -mx=5
. (Sin-mmt=off
: real 1m27.811s, usuario 2m4.976s, sys 0m3.729s . Con-mmt=off
: real 1m18.896s, usuario 1m17.160s, sys 0m1.661s )Todos los algoritmos de compresión que he usado recientemente (ZIP, RAR, 7z, tar / bzip2) están vinculados a E / S, no a CPU. Ver MenuMeters en mi computadora portátil Mac muestra actividad constante en el disco, pero solo 50% o menos de actividad de la CPU.
Por lo tanto, la forma de acelerar la compresión / descompresión es acelerar su disco. Esto no siempre es posible.
Mi "solución" a esto es hacer otra cosa mientras estoy comprimiendo algo. :-)
fuente
En mi empresa, estamos trabajando con una versión anterior de 7-zip (4.52 beta), y estamos ejecutando el siguiente comando:
Esto funciona bien, pero después de haber actualizado a la nueva versión 16.04 (32 bits), el rendimiento ha bajado enormemente, por lo que he decidido volver a la versión anterior.
fuente
Otro pequeño truco para mejorar el rendimiento cuando usa código como este ejemplo:
es, si es posible, tener en la matriz $ ListDir enumeró los directorios por tamaño, desde el más pequeño hasta el más grande. Esto sucede porque en cada ciclo foreach 7zip crea un archivo temporal que es tan grande (o más grande) que el original, luego agrega un nuevo archivo dentro de ellos. He intentado con casos en los que hay dos o más directorios grandes, algunos MB y uno grande, muchos GB y el ahorro de tiempo es del orden de varios minutos.
fuente
Supongo que acelerar 7-Zip es imposible sin volver a escribir sus algoritmos de compresión / descompresión, puede haber algún tipo de ajuste que aumente la velocidad, pero probablemente solo será como un aumento del 10 o 15%, no un aumento masivo Aumento del 50-100% que estás buscando.
fuente