我应该使用xz还是lzma压缩?


Answers:


12

此基准提供了有关此问题的一些良好信息。看起来LZMA的压缩率和性能比XZ略好,但由于“实际原因”,XZ通常是首选(我不确定这些是什么)。

XZ是lzma2算法的一种实现,它更适合压缩“不可压缩”数据:

lzma2是7压缩LZMA2压缩器采用的压缩方法。LZMA2是LZMA的修改版本,可为不可压缩的数据提供更好的压缩率(随机数据扩展了约0.005%,而原始LZMA则为1.35%),并且可以并行压缩大型文件的多个部分,从而极大地提高了压缩速度,但可能会降低压缩率(请参阅LZMANumBlockThreads)。像LZMA一样,它会消耗大量内存。参见上表。如果未指定压缩级别,则默认为最大。

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

您应该可以使用其中任何一个。


出于好奇,您决定使用哪个?
dv3500ea 2010年

1
实际上,经过一些测试,xz似乎是前进的方向。与lzma相比,它还节省了相当多的二进制文件压缩时间(10mb somtimes)。
NightwishFan 2010年

8
关于“可以使用其中任何一个”,这不是一个适当的答案。即使在他发布此问题时,也知道.lzma文件在不久的将来将完全被.xz替换。LZMA-Utils的作者公开表示,不赞成使用它们,从5.00开始使用xz-utils。LZMA-Utils的最新发布时间是2008年7月30日,即使年代久远。因此,就压缩而言,改进可能不是决定因素。(具有讽刺意味的是,)但出于“政治”原因,应该是使用XZ-Utils的重要原因,并且避免创建新的.lzma档案。
JM Becker 2012年

1
@TechZilla您是否考虑过将您的观点发布为替代答案?
ændrük

1
LZMA2的实际原因是多线程支持。单线程性能和压缩率略低,但是在使用多个内核的系统上,LZMA2解码时会更快。
乔纳森·鲍德温

42

我不同意@ dv3500ea的结论,“可以使用任一方法”,因为这是不合适的。即使在发布的日期/时间,.lzma文件也被完全替换.xz。两个实用程序的作者公开表示,用户应过渡到≥5.00的XZ-Utils。最新的LZMA-Utils版本是2008-07-30,并已停产。

LZMA Utils是具有高压缩率的传统数据压缩软件。LZMA Utils不再开发,尽管关键的bug可以修复,只要修复它们不需要对代码进行大量更改即可。

LZMA Utils的用户应移至XZ Utils。XZ Utils支持.lzmaLZMA Utils使用的旧格式,并且还可以模拟LZMA Utils的命令行工具。这应该使从LZMA Utils到XZ Utils的转换相对容易。

决定性的因素可能不是压缩,尽管具有讽刺意味的是,在本示例中。“实际原因”是使用XZ-Utils的不言而喻的重要原因。另外,该.xz格式允许您指定压缩算法和过滤器,因此.xz文件可以使用LZMA或LZMA2。避免创建新.lzma文件,它们被认为是旧格式。

至于甚至保留LZMA-Utils:请勿。XZ-Utils支持旧.lzma文件。它还具有针对仍使用LZMA-Utils的脚本的包装器。如果所有这些原因仍然不足,Ubuntu会从其存储库中删除旧的lzma-utils。


1
“两个Utils的作者都公开表示,用户应过渡到XZ-Utils≥5.00。” 需要引用。:-)
Faheem Mitha 2014年

@FaheemMitha:由于这是帖子,而不是教育参考或原始研究,因此引用仅是项目页面。我以为是因为它来自LZMA-Utils的作者,他写了两个实用程序集,目的是xz-utils代替了旧的LZMA-Utils,这是不言而喻的。...但是对于想获取更多详细信息的人,请访问tukaani.org/lzma
JM Becker 2014年

3

绝对不应该像其他人一样使用lzma。

lzip格式的作者Antonio Diaz Diaz说Xz格式不足以进行长期归档。如果要备份重要文件,请考虑其他文件格式,例如bzip2,它具有损坏恢复工具。


有些人认为xz不安全。但是,这不适用于lzma。
oᴉɹǝɥɔ

0

xz是优选的,因为它具有最高的压缩率。但是,压缩速度较慢,但​​可以通过压缩来弥补。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.