¿Debo usar la compresión xz o lzma?

Respuestas:

12

Este punto de referencia proporciona buena información sobre este tema. Parece que LZMA tiene relaciones de compresión y rendimiento ligeramente mejores que XZ, pero XZ generalmente se prefiere debido a 'razones prácticas' (no estoy seguro de cuáles son).

XZ es una implementación del algoritmo lzma2 y es mejor para comprimir datos 'no comprimibles':

lzma2 es el método de compresión empleado por el compresor 7-Zip LZMA2. LZMA2 es una versión modificada de LZMA que ofrece una mejor relación de compresión para datos no comprimibles (los datos aleatorios se expanden aproximadamente 0.005%, en comparación con 1.35% con LZMA original), y opcionalmente puede comprimir múltiples partes de archivos grandes en paralelo, aumentando considerablemente la velocidad de compresión pero con una posible reducción en la relación de compresión (ver LZMANumBlockThreads). Al igual que LZMA, puede consumir mucha memoria; ver la tabla de arriba. Si no se especifica un nivel de compresión, el valor predeterminado es max.

( http://www.jrsoftware.org/ishelp/index.php?topic=setup_compression )

Deberías estar bien usando cualquiera de los dos.

dv3500ea
fuente
Por curiosidad, ¿decidiste cuál usar?
dv3500ea
1
En realidad, después de un poco de prueba, parece que xz será el camino a seguir. También ahorra bastante compresión (10mb algunas veces) en material binario sobre lzma.
NightwishFan
8
Esa no fue una respuesta apropiada, en lo que respecta a "Aceptar usar cualquiera". Incluso en el momento en que publicó esta pregunta, se sabía que los archivos .lzma serían reemplazados completamente por .xz en el futuro cercano. El autor de LZMA-Utils ha dicho públicamente que fueron desaprobados y usaron xz-utils desde las 5.00 en adelante. La última versión de LZMA-Utils fue el 30-07-2008, incluso en el momento en que tenía años. Entonces, en cuanto a la compresión, las mejoras podrían no ser un factor determinante enorme. (Irónicamente en caso de que lo fuera) Pero las razones "políticas" deberían haber sido una razón importante para usar XZ-Utils y evitar crear nuevos archivos .lzma.
JM Becker
1
@TechZilla ¿Has considerado publicar tu opinión sobre esto como una respuesta alternativa?
ændrük
1
Las razones prácticas para LZMA2 son el soporte de subprocesos múltiples. El rendimiento del subproceso único y la relación de compresión son ligeramente inferiores, pero en un sistema con varios núcleos utilizados, se espera que LZMA2 sea mucho más rápido al decodificar.
Jonathan Baldwin
42

No estoy de acuerdo con la conclusión de @ dv3500ea, "Está bien usar cualquiera", ya que era inapropiado. Incluso en la fecha / hora publicada, .lzmase sabía que los archivos se reemplazaban por completo .xz. El autor de ambas Utils ha dicho públicamente que los usuarios deben hacer la transición a XZ-Utils ≥ 5.00. La última versión de LZMA-Utils fue 2008-07-30, y se suspendió.

LZMA Utils es un software de compresión de datos heredado con una alta relación de compresión. Las utilidades de LZMA ya no se desarrollan, aunque los errores críticos pueden corregirse siempre que su reparación no requiera grandes cambios en el código.

Los usuarios de LZMA Utils deben pasar a XZ Utils. XZ Utils admite el .lzmaformato heredado utilizado por LZMA Utils y también puede emular las herramientas de línea de comandos de LZMA Utils. Esto debería hacer que la transición de LZMA Utils a XZ Utils sea relativamente fácil.

El factor determinante podría no ser la compresión, aunque irónicamente lo fue para este ejemplo. Las "razones prácticas" son una razón evidente y significativa para usar XZ-Utils. Además, el .xzformato le permite especificar algoritmos de compresión y filtros, por lo que los .xzarchivos pueden usar LZMA o LZMA2. Evite crear .lzmaarchivos nuevos , se consideran un formato heredado.

En cuanto a incluso mantener a LZMA-Utils cerca: no lo hagas. XZ-Utils tiene soporte para .lzmaarchivos heredados . También tiene envoltorios para scripts que todavía usan LZMA-Utils. Si todas esas razones seguían siendo insuficientes, Ubuntu eliminó lzma-utils heredadas de su repositorio.

JM Becker
fuente
1
"El autor de ambas Utils ha dicho públicamente que los usuarios deberían hacer la transición a XZ-Utils ≥ 5.00". Cita necesaria. :-)
Faheem Mitha
@FaheemMitha: Dado que esta es una publicación, y no una referencia educativa o una investigación original, la cita solo sería la página del proyecto. Supuse que, dado que era del autor de LZMA-Utils, y escribió AMBOS conjuntos de utilidades con la intención de que xz-utils reemplazara a LZMA-Utils heredados, era evidente. ... Pero para cualquiera que quiera obtener más detalles, tukaani.org/lzma .
JM Becker
3

Definitivamente no deberías usar lzma como dicen otros.

Antonio Díaz Díaz, autor del formato lzip, dice que el formato Xz es inadecuado para el archivo a largo plazo . Si desea hacer una copia de seguridad de sus archivos importantes, considere otros formatos de archivo como bzip2, que tiene una herramienta de recuperación de corrupción.

criticabug
fuente
xz es considerado inseguro por algunos. Sin embargo, eso no se aplica a lzma.
oᴉɹǝɥɔ
0

Se prefiere xz debido a que tiene la tasa de compresión más alta. Sin embargo, se comprime más lentamente, pero lo compensa con su compresión.

Gráficos distantes
fuente