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

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

内容简介: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


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

查看所有标签

猜你喜欢:

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

代码2.0

代码2.0

(美)劳伦斯·莱斯格 / 李旭、沈伟伟 / 清华大学出版社 / 2009-7-1 / 48.00

《代码2.0:网络空间中的法律》在西方发达国家已成为法律学、公共管理学、商学、传播学、政治学和信息科学技术专业的必读书目。对于政府管理者、法律执业者、ICT企业管理者、创意产业从业者和广大信息工程技术人员来说,这的确是一本能够启迪思维的难得之作。在众多以网络为主题的书籍中,这是一本问世近10年但居然没有过时的书!于是,它成为了经典之作,荣膺学术名著和畅销读物两项桂冠。一起来看看 《代码2.0》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具