每当我看到一些用gzip压缩的源包或二进制文件时,我想知道是否仍然有理由偏爱gz而不是xz (不包括2000年的时间旅行),LZMA压缩算法的节省是巨大的,解压缩并不比GZip差很多。
发布于 2011-06-27 21:25:16
“最小公分母”。节省的额外空间很少值得失去互操作性。大多数嵌入式Linux系统都有gzip,但没有xz。许多旧系统也是如此。Gnu是行业标准,它支持通过gzip处理的标志-z,通过bzip2处理的和-j,但一些旧系统不支持xz的-J标志,这意味着它需要两步操作(以及大量额外的磁盘空间用于未压缩的.tar,除非您使用|tar xf -的语法-许多人不知道这一点)。此外,在嵌入式ARM上从tar.gz解压大约10MB的完整文件系统需要大约2分钟,这并不是真正的问题。没有关于xz的线索,但是bzip2大约需要10-15分钟。绝对不值得节省带宽。
发布于 2012-12-16 03:50:06
最终的答案是可访问性,第二个答案是目的。XZ不一定像Gzip那样合适的原因:
现在,在另一方面,XZ压缩在某些情况下是非常优越的:
最终,这一切都归结为四个方面的权衡:压缩大小、压缩/解压缩速度、复制/传输速度(从磁盘/网络读取数据)和压缩器/解压缩器的可用性。选择高度依赖于“您打算如何处理这些数据?”这一问题。
还有check out this related post,我从中学到了一些我在这里重复的东西。
发布于 2016-02-24 19:21:00
来自Lzip压缩实用程序的作者:
Xz具有复杂的格式,部分专门用于可执行文件的压缩,并设计为通过专有格式进行扩展。在这里测试的四个压缩器中,xz是唯一一个不符合Unix“做一件事,做好它”的概念的压缩器。它不太适合数据共享,也不适合长期归档。
一般来说,格式越复杂,将来被解码的可能性就越小。但是xz格式,就像它臭名昭著的前身lzma一样,设计得特别糟糕。Xz复制了gzip的几乎所有缺陷,然后添加了更多的缺陷,比如脆弱的可变长度整数。只需在可变长度整数的任何字节的第7位中进行一位翻转,整个xz流就会像纸牌屋一样倒塌。除了压缩生命周期短的可执行文件之外,使用xz做任何事情都是不可取的。
别误会我。我非常感谢Igor Pavlov发明/发现了LZMA,但xz是他的追随者第三次尝试利用7zip的流行,用不适当或设计糟糕的格式取代gzip和bzip2。尤其令人遗憾的是,GNU和Linux都实现了对lzma的单独支持。
http://www.nongnu.org/lzip/lzip_benchmark.html
https://stackoverflow.com/questions/6493270
复制相似问题