Meta最新Zstandard算法助力Chrome再次遥遥领先!

前有科技后进阶 2024-04-17 05:57:22

大家好,很高兴又见面了,我是"高级前端‬进阶‬",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力。

Meta 的 Yann Collet 最近发布了 Zstd 1.5.6 作为 Zstandard 压缩算法实现的最新版本。 此版本的部分驱动因素是 Google Chrome 123 添加了对 Web 流量的 Zstd 编码的支持。 Chrome 现在允许通过 Zstandard (zstd) 进行内容编码以加快页面加载速度并节省带宽。

接下来一起聊聊什么是 Zstandard?为何需要 Zstandard?。话不多说,直接开始!

什么是 Zstandard

Zstandard - Fast real-time compression algorithm

Zstandard,简称 zstd,是一种快速无损压缩算法,是针对 zlib 级别的实时压缩场景,同时具有更好的压缩比,由 Huff0 和 FSE 库提供的非常快的熵阶段支持。下图表示不同压缩算法的压缩、解压缩效率。

Zstandard 的格式稳定并记录在 RFC8878 中。 多个独立的实现已经可用。 Zstandard 存储库代表参考实现,作为开源双 BSD 或 GPLv2 许可的 C 库以及生成和解码 .zst、.gz、.xz 和 .lz4 文件的命令行实用程序提供。

如果开发项目需要其他编程语言支持,Zstandard 主页上提供了已知端口和绑定的列表。

目前 Zstandard 在 Github 通过 MIT 协议开源,有超过 23.2k 的 star、2k 的 fork、代码贡献者 300+、妥妥的优质开源项目。

浏览器为何要支持 Zstandard

Zstandard 算法在以下场景中非常有用:

支持非常大 PayLoad:比如数据备份压缩,提高压缩效率和大小支持多线程压缩:近乎线性加速每个 CPU 内核的压缩速度,且几乎没有比率损失长距离模式:Zstd 将最大窗口大小增加到 2 GB,并添加特殊的预处理器,以 100 MB/s 的速度在该大窗口中查找匹配项。 长距离模式与常规 zstd 压缩级别协同工作。

而在浏览器中支持 Content-Encoding 的 zstd 内容编码允许站点在服务器上花费更少的时间、CPU、带宽、功率,从而降低服务器成本。

最终数据显示,Zstd 的解压速度大约是 Brotli 的三倍。 再加上 zstd 的压缩速度更快,从而使得页面加载时间更快。

参考资料

https://github.com/facebook/zstd

https://engineering.fb.com/2018/12/19/core-infra/zstandard/

https://blog.gslin.org/archives/2016/09/01/6790/facebook-%E6%8E%A8%E5%87%BA%E7%9A%84-zstandard-%E5%A3%93%E7%B8%AE/

https://community.intel.com/t5/Blogs/Tech-Innovation/Artificial-Intelligence-AI/Intel-QuickAssist-Technology-Zstandard-Plugin-an-External/post/1509818

0 阅读:10

前有科技后进阶

简介:感谢大家的关注