zstd v1.4.7 发布,Facebook 开源的无损压缩算法

栏目: 软件资讯 · 发布时间: 5年前

内容简介:zstd v1.4.7 已发布,官方特别推荐升级到此版本,因为 1.4.7 在性能、修复错误以及增加新功能方面均有不小的改进。zstd (Zstandard) 是由 Facebook 开源的快速无损压缩算法,主要应用于 zlib 级别的实时压缩场景,...

zstd v1.4.7 已发布,官方特别推荐升级到此版本,因为 1.4.7 在性能、修复错误以及增加新功能方面均有不小的改进。zstd (Zstandard) 是由 Facebook 开源的快速无损压缩算法,主要应用于 zlib 级别的实时压缩场景,并且具有更好的压缩比。zstd 还可以以压缩速度为代价提供更强的压缩比,速度与压缩权衡可通过小增量进行配置。

P.S:文章发布时,Facebook 发布了针对 1.4.7 的热修复更新,版本也升级到了 1.4.8,修复了关于内部缓存的问题,详情点此查看

改进--long模式

--long模式用于在合理的时间和内存预算内分析大量数据,--long模式算法运行在正则表达式匹配器上,两者均对压缩结果产生影响。不过这两个阶段独立运行,因此导致在高级别的压缩水平下出现细微差异。所以无法在默认情况下一直启用--long模式。

新版本修复了此问题,对于压缩级别为 16 以上的压缩,开启--long模式的压缩性能始终比关闭--long模式好。

zstd v1.4.7 发布,Facebook 开源的无损压缩算法
 

提升解压小文件块的速度

此版本对解压小文件块的速度进行了优化,具体的提升根据文件块的大小有所不同,如下表所示:
 

Block Size Decompression Speed Improvement
1 KB ~+30%
2 KB ~+30%
4 KB ~+25%
8 KB ~+15%
16 KB ~+10%
32 KB ~+5%

共享线程池 (Shared Thread Pool)

这是一项试验性功能。

默认情况下,每个压缩上下文可以设置为使用最大可用的线程。但在复杂情况下,可能会有多个压缩上下文并行工作,每个上下文都会使用部分线程。在这种场景中,可能需要控制所有这些压缩上下文使用的线程总数。

1.4.7 新增的共享线程池功能支持让所有这些压缩上下文共享同一个线程池,添加ZSTD_CCtx_refThreadPool()参数即可使用。

提升字典压缩速度 (Dictionary Compression)

此版本引入了新的实验性字典压缩算法,适用于中档压缩级别,采用了ZSTD_greedyZSTD_lazyZSTD_lazy2等策略。新算法可以在ZSTD_CDict创建过程中通过选择压缩参数ZSTD_c_enableDedicatedDictSearch来触发。

下面的基准测试显示了新算法带来的显著压缩速度提升:
 

Level Hot Dict Cold Dict
5 ~+17% ~+30%
6 ~+12% ~+45%
7 ~+13% ~+40%
8 ~+16% ~+50%
9 ~+19% ~+65%
10 ~+24% ~+70%

详情查看
https://github.com/facebook/zstd/releases/tag/v1.4.7


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Everything Store

The Everything Store

Brad Stone / Little, Brown and Company / 2013-10-22 / USD 28.00

The definitive story of Amazon.com, one of the most successful companies in the world, and of its driven, brilliant founder, Jeff Bezos. Amazon.com started off delivering books through the mail. Bu......一起来看看 《The Everything Store》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

MD5 加密
MD5 加密

MD5 加密工具