Nat*_*055 21 compression gzip tar bzip2 xz
在 xz、gzip 和 bzip2 之间,哪种压缩算法在压缩相当大的 tarball 时提供最小的文件大小和最快的速度?
Nat*_*055 16
在我的压力测试中,我使用列出的三种格式压缩了 464 兆字节的数据。Gzip 返回了一个 364 MB 的文件。Bzip2 返回了一个 315 MB 的文件。Xz 返回了一个 254 MB 的文件。我还做了一个简单的速度测试:
压缩:
1:压缩包
2:XZ
3:Bzip2(我的风扇在这个过程中吹得很厉害,表明我的 Athlon II 相当紧张)
减压:
1:XZ
2:压缩包
3:Bzip2
请注意,所有这些测试都是使用最新版本的 7-Zip 完成的。
Xz 是全面压缩的最佳格式,而 Gzip 非常适合速度。Bzip2 的压缩率不错,尽管应该使用 xz 代替它。
这个问题是从2014年开始的,但与此同时也出现了一些趋势。bzip2 已被 xz 淘汰,而zstd可能是大多数工作流程的最佳选择。
最小文件大小:就最小文件大小而言,xz 仍然是最好的。不过,压缩的成本相当高,因此如果这是一个问题的话,更快的压缩算法更适合。pxz实现允许使用多核,这可以稍微加快 xz 压缩速度。
优化快速压缩:当谈到主要针对压缩速度进行优化时的最佳算法时,我认为没有明显的赢家,但lz4是一个很好的候选者。
最佳权衡:如果您需要在不太了解场景的情况下选择一个好的整体算法,那么zstd会很适合。当配置为以与 gzip 相同的速度运行时,它在大小上将轻松击败它。有了更好的压缩率,它会更接近 xz,但速度更快。因此,如果您需要一个适用于广泛用例的可靠算法,zstd 很可能会优于其他算法。它还具有一些高级功能,例如能够构建外部词典,因此还可以针对特定领域进一步优化。
最大兼容性:如果您需要任何应用程序都能够理解的算法,那么 gzip 仍然是最佳默认值。与 zstd 相比,它现在基本上已经过时了,但几乎任何环境都可以使用 gzip,而对 zstd 的支持仍然不存在(2021 年)。它于 2016 年发布,而 gzip 则于 1992 年发布。
小智 5
我认为这篇文章提供了非常有趣的结果。
http://pokecraft.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO
最有效的大小格式是 xz 和 lzma,两者都传递了 -e 参数。
目前最快的算法是 lzop 和 lz4,它们可以在 1.3 秒内产生与 gzip 相差不远的压缩级别,而 gzip 需要 8.1 秒。lz4 的压缩比为 2.8,gzip 的压缩比为 3.7。
以下是我从这篇文章中提取的一些结果:
Gzip:8.1s @ 3.7
lz4:1.3s @ 2.8
xz:32.2s @ 5.43
xz -e : 6m40 @ 7.063
因此,如果您真的非常需要速度,lz4 非常棒并且仍然提供 2.8 的压缩比。
如果您迫切需要节省字节,那么最大压缩级别 (9) 的 xz 对内核源代码等文本文件效果最佳。但是,它很长,需要很多内存。
一个需要最小化对时间和空间的影响的好方法是 gzip。这是我用来对生产环境进行每日手动备份的工具。
我在 1.1GB Linux 安装 vmdk 映像上做了我自己的基准测试:
rar =260MB comp= 85s decomp= 5s
7z(p7z)=269MB comp= 98s decomp=15s
tar.xz =288MB comp=400s decomp=30s
tar.bz2=382MB comp= 91s decomp=70s
tar.gz =421MB comp=181s decomp= 5s
Run Code Online (Sandbox Code Playgroud)
最大所有压缩级别,CPU Intel I7 3740QM,内存 32GB 1600,RAM 磁盘上的源和目标
我一般使用 rar 或 7z 来归档普通文件,例如文档。
对于归档系统文件,我通过 file-roller 或 tar 使用 .tar.gz 或 .tar.xz 和 -z 或 -J 选项以及 --preserve 以使用 tar 进行本地压缩并保留权限(也可以使用 .tar.7z 或.tar.rar 可以使用)
更新:由于 tar 只保留正常权限而不保留 ACL,因此也可以使用普通的 .7z 以及通过 getfacl 和 sefacl 手动备份和恢复权限和 ACL,这似乎是文件归档或系统文件备份的最佳选择,因为它将满保留权限和 ACL,具有校验和、完整性测试和加密功能,唯一的缺点是 p7zip 并非随处可用
| 归档时间: |
|
| 查看次数: |
22134 次 |
| 最近记录: |