Entonces existen diferentes métodos de compresión en 7zip. ¿Qué método es más adecuado para qué tarea?
Por ejemplo: una diferencia entre LZMA y LZMA2 es que puedo elegir todos los núcleos de mi CPU, mientras que en LZMA 2 núcleos es el máximo.
Respuesta1
Utilice LZMA 2 a menos que desee extraer el archivo en un sistema que no pueda manejar archivos LZMA 2.
En términos generales, la mayoría de los algoritmos de compresión modernos ofrecen aproximadamente la misma compresión y, con respecto a la cantidad de núcleos que puede usar a la vez, usted decide cuántos desea usar. En términos generales (a menos que esté creando archivos grandes), no hay razón para necesitar más de uno. Además, con varios núcleos realizando la compresión, el cuello de botella puede convertirse en el disco duro.
Respuesta2
7-Zip (al menos a partir del 27 de septiembre de 2019) tiene un documento de ayuda incorporado con una explicación muy, muy agradable de las distintas configuraciones que puede elegir y para qué, en general, sirve cada una.
No hay resultados de referencia ni nada por el estilo, pero fue información suficiente para infundirme cierta confianza en que estaba eligiendo configuraciones "suficientemente buenas" y no "accidentalmente horribles".
El documento de ayuda está disponible a través del Administrador de archivos 7-Zip, así como en el cuadro de diálogo Agregar al archivo.
La ruta de "Contenido" a la página que encontré útil (que se abre directamente desde el cuadro de diálogo Agregar al archivo) es:
File Manager / Plugins / 7-Zip / Add to Archive Dialog Box
Aquí hay una copia y pegado aproximado de la sección del método de compresión:
Descripción del método
- LZMA
- Es el método de compresión base para el formato 7z. Incluso las versiones antiguas de 7-Zip pueden descomprimir archivos creados con el método LZMA. Proporciona una alta relación de compresión y una descompresión muy rápida.
- LZMA2
- Método de compresión predeterminado de formato 7z. LZMA2 es un método de compresión basado en LZMA. Proporciona un mejor soporte multiproceso que LZMA. Pero la relación de compresión puede ser peor en algunos casos. Para obtener la mejor relación de compresión con LZMA2, utilice 1 o 2 subprocesos de CPU. Si usa LZMA2 con más de 2 subprocesos, 7-zip divide los datos en fragmentos y los comprime de forma independiente (2 subprocesos por cada fragmento).
- PPMd
- Algoritmo PPMdH de Dmitry Shkarin con pequeños cambios. Por lo general, proporciona una alta relación de compresión y alta velocidad para archivos de texto.
- BZip2
- Método de compresión estándar basado en el algoritmo BWT. Por lo general, proporciona alta velocidad y una relación de compresión bastante buena para archivos de texto.
- Desinflar
- Método de compresión estándar de formatos ZIP y GZip. La relación de compresión no es demasiado alta. Pero proporciona una compresión y descompresión bastante rápida. El método Deflate solo admite un diccionario de 32 KB.
- desinflar64
- Versión modificada del algoritmo Deflate con un diccionario más grande (64 KB).
Respuesta3
Lzma2 es más rápido cuando se utilizan 4 o más núcleos y ofrece una mejor compresión.Este documentolo explica todo.
Respuesta4
El enlace se puede encontrar en Wayback Machine:
https://web.archive.org/web/20221015140740/http://www.maximumcompression.com/data/summary_mf2.php
(fue molesto reformatear la tabla; puedo preguntarme por qué no puede convertir una tabla html a su propio formato)
Resumen de las pruebas comparativas de compresión de múltiples archivos
Tipo de archivo: Múltiples tipos de archivos (46 en total)
# de archivos para comprimir en esta prueba: 510
Tamaño total del archivo (bytes): 316.355.757
Tamaño promedio de archivo (bytes): 620,305
Archivo más grande (bytes): 18.403.071
Archivo más pequeño (bytes): 3554
Esta prueba está diseñada para modelar el rendimiento del "mundo real" de compresores de datos sin pérdidas. El conjunto de prueba contiene una combinación de diferentes tipos de archivos que se eligen teniendo en cuenta "¿Para qué utilizan más los archivadores?". El conjunto de pruebas debe contener datos, ponderados (tanto en tipo como en proporción de archivos en el conjunto) según la frecuencia con la que los usuarios normales utilizan estos archivos para la compresión que utilizan software de compresión. Entonces, por ejemplo, habrá más archivos txt que archivos .ocx en el conjunto (sí, esto es arbitrario). El conjunto contiene cientos de archivos y tiene un tamaño total de más de 300 Mb. La idea de una gran colección es filtrar el "ruido". Un compresor puede funcionar mal en 1 o 2 tipos de archivos, pero en una colección muy grande no hará tanto daño.
Algunos programas como CCM y BZIP2 sólo pueden comprimir un archivo a la vez. Para estos programas se crea un único archivo TAR que contiene todos los archivos. Los archivos en este archivo TAR están ordenados alfabéticamente por sufijo y luego por nombre. Los resultados de estos compresores están marcados con una 'Y' en la columna alquitranada.
El conjunto de pruebas consta de los siguientes tipos de archivos:
Tipos de archivo) | Descripción | % del total | # de archivos |
---|---|---|---|
TOC, MBX | Buzones de Eudora | 12.31 | dieciséis |
EXE, DLL, OCX, DRV | Ejecutables | 10,99 | 35 |
TXT, RTF, DIC, GNL | Archivos de texto en varios idiomas. | 10.21 | 41 |
BMP, TIFF | Mapas de bits/imágenes TIF | 7,88 | 15 |
REGISTRO | Archivos de registro | 6.34 | 6 |
HTML, PHP | archivos HTML | 6.13 | 19 |
DOC | Archivos MS Word | 6.08 | 30 |
C, CPP, PAS, DCU | Código fuente | 6.00 | 235 |
MDB, CSV | Bases de datos | 4.26 | 7 |
HLLP | Archivos de ayuda de Windows | 4.23 | 7 |
CBF, CBG | Bases de datos de ajedrez precomprimidas | 3.55 | 2 |
WAV | Archivos de sonido de ondas | 3.45 | 9 |
XLS | Hojas de cálculo XLS | 2.41 | dieciséis |
Documento de Adobe Acróbata | 1,59 | 6 | |
TTF | Fuentes de tipo verdadero | 1.15 | 15 |
DEF | Archivos de definición de virus | 1.10 | 3 |
JPEG, GIF | Archivos de imagen | 0,53 | 9 |
CHM | Archivos de ayuda precomprimidos | 0,49 | 2 |
INI, INF | archivos INI | 0,42 | 10 |
Otros | DAT,JAR,M3D,SYS,PPT,MAPA,WP,RLL,RIB.. | 10,88 | 27 |
Teniendo en cuenta el hecho de que se supone que es una prueba del "mundo real", no buscaré la mejor combinación de interruptores posible (línea de comandos o interfaz gráfica de usuario) para usar para una compresión óptima, sino que solo probaré un conjunto limitado como lo harían los "usuarios normales". . Para 7-zip, esto significa, por ejemplo, que usaré la GUI y seleccionaré el método de compresión Ultra (que puede superarse fácilmente con algunos buenos cambios en la línea de comandos), WinRar se probará con un tamaño de diccionario máximo y un archivo sólido, etc. utilizar un máximo de 800 MB de memoria y debe finalizar la etapa de compresión dentro de las 12 h. El tamaño comprimido debe ser del 50 % o menos en comparación con el tamaño original para que aparezca en MFC.
Para mis pruebas de un solo archivo recibí muchas solicitudes para agregar el tiempo de compresión a las tablas. No hice esto por los motivos indicados en el archivo de resumen de un solo archivo, ¡pero planeo medir los tiempos de compresión para esta prueba de múltiples archivos! También decidí hacer que este conjunto de pruebas sea "no público", por lo que es más difícil para los desarrolladores ajustar su programa a esta prueba específica. Creo que esta es la forma más justa de realizar pruebas de rendimiento en la "vida real".
Sistema de puntuación: el programa que produce el tamaño comprimido más bajo se considera el mejor programa. El programa más eficiente (lectura: uso completo) se calcula multiplicando el tiempo de compresión + descompresión (en segundos) que tomó producir el archivo por la potencia del tamaño del archivo dividido por el tamaño de archivo más bajo medido. Cuanto menor sea la puntuación, mejor. La idea básica es que un compresor X tiene la misma eficiencia que el compresor Y si X puede comprimir dos veces más rápido que Y y el tamaño del archivo resultante de X es un 10% mayor que el tamaño de Y. (Un agradecimiento especial a Uwe Herklotz por lograr esta fórmula correcta)
puntuación_X = POTENCIA(2; ((tamaño_X / tamaño_TOP) - 1) / 0,1) * tiempo_X
con
score_X efficiency score for a certain compressor X
time_X time elapsed by compressor X (comp + decomp time)
size_X archive size achieved with compressor X
size_TOP archive size by top archiver (smallest benchmark result)
Fórmula para calcular la eficiencia del compresor en función del tamaño comprimido y el tiempo de compresión
"0,1" representa el 10% y la potencia de 2 garantiza que por cada 10% de peores resultados (en comparación con los mejores) el tiempo se duplica, por lo que cualquier archivador (excepto el compresor superior) recibirá una penalización de tiempo. La puntuación del compresor superior siempre es igual a su valor de tiempo.