gzip 和 compress 有什么区别?使用压缩功能有什么优点?我可以看到压缩文件的大小差异,但除此之外,主要优点是什么?
答案1
compress 的历史要早得多(1983 年),并且基于 LZW 压缩算法。
Gzip 编写于 90 年代初,基于 DEFLATE 算法。
一般来说,压缩将运行得更快并且使用更少的内存,但 gzip 通常会达到更高的压缩级别。
Unisys 在 20 世纪 90 年代初开始实施的 LZW 也存在专利问题(主要针对也使用 LZW 压缩的 GIF 格式)。 gzip 开发人员打算开发不受专利限制的通用压缩软件。
答案2
TL;DR:gzip
比compress
.其他工具可能更快/更好,例如pigz
更快并且与 gzip 兼容。
我做了一些测试来比较 的压缩级别、压缩时间和解压缩时间gzip
(compress
只是xz
为了了解更多背景信息,这不是全面的压缩工具比较):
File size
| Percentage of original size
| | Time to compress
| | | Time to decompress
| | | | Method
| | | | | Filename
425M 100% - - - Germany_hessen_europe_2.obf
348M 82% 16.8 3.24 compress test.Z
260M 61% 11.8 4.18 gzip -1 test.1.gz
246M 58% n/a 3.88 gzip -9 test.9.gz
226M 53% 69.6 15.6 xz -1 test.1.xz
该文件是德国某个州的地图从 OsmAnd 下载,压缩效果非常好(稍加努力即可压缩 50%)。
简而言之:
compress
比gzip -1
压缩时慢,- 它也只压缩一半,但是
- 解压时速度快 29%。
测试方法:我使用了空闲的SSD,I/O不是瓶颈。我用于time cat file | compression > out
压缩和time cat file | decompression > /dev/null
解压时间。对gzip -1
和 的测试compress
运行了两次(压缩和解压缩)并给出了非常相似的结果,我取了平均值。gzip -9
我只是忘了测量压缩时间,但由于压缩-1
时间已经比我想象的要好得多,所以compress
回去做这件事不会增加太多。