我们在 git 中有一些非常大的存储库,在这些存储库中我们观察到远程/服务器压缩在克隆/pull 时是如何成为瓶颈的。鉴于 git 已经变得如此普遍并且使用了 zlib,这个 zlib 压缩是否得到了优化?
Intel 的一篇论文详细介绍了他们如何在压缩比较小的情况下将 DEFLATE 压缩速度提高约 4 倍:
另一篇论文指出,在大多数压缩“级别”(1-9) 的压缩率保持不变的情况下,速度提高了约 1.8 倍:
后者的优化似乎在 github 上可用:https://github.com/jtkukunas/zlib
zlib 似乎很老(在这个快节奏的行业中)最新版本是 2013 年 4 月发布的。是否有任何尝试为新一代处理器优化 SIMD zlib?或者除了在 git 中使用 zlib 之外还有其他选择吗?
我知道你可以在 git 中指定一个压缩级别,这会影响速度和压缩率。然而,以上表明可以在不损害压缩率的情况下对 zlib 进行相当大的性能改进。
回顾一下,是否有任何现有的 git 实现使用高度优化的 zlib 或 zlib 替代方案?
PS:似乎很多开发者/服务器会从中受益(甚至是温室气体排放 ;))。
最佳答案
事实上,英特尔对 zlib 的 deflate 做出了贡献,但尚未集成。你可以看看this fork of zlib它有一些 Intel 和 Cloudfare 改进压缩的实验性集成。您可以尝试使用 git 对其进行编译以查看其效果。
zlib 比你想象的要老。大多数压缩代码与 20 年前相比没有太大变化。减压大约在 12 年前被重写。
关于Git DEFLATE/优化的 zlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31873479/