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

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模式好。

提升解压小文件块的速度

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

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

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/124138/zstd-1-4-7-released

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。