当前位置:网站首页>【ELT.ZIP】OpenHarmony啃论文俱乐部—数据密集型应用内存压缩
【ELT.ZIP】OpenHarmony啃论文俱乐部—数据密集型应用内存压缩
2022-06-27 16:19:00 【InfoQ】
- 本文出自
ELT.ZIP团队,ELT<=>Elite(精英),.ZIP为压缩格式,ELT.ZIP即压缩精英。
- 成员:
- 上海工程技术大学大二在校生
- 合肥师范学院大二在校生
- 清华大学大二在校生
- 成都信息工程大学大一在校生
- 黑龙江大学大一在校生
- 华南理工大学大一在校生
- 我们是来自
6个地方的同学,我们在OpenHarmony成长计划啃论文俱乐部里,与华为、软通动力、润和软件、拓维信息、深开鸿等公司一起,学习和研究操作系统技术…
揭秘谷歌应用EROFS到安卓的原因
EROFS为何能在文件压缩系统领域大放光彩
神秘的LZ4m如何给内存压缩领域带来新的生机

介绍
数据密集型(data-intensive)
数据密集型WKdmLZ4mWKdmLZ4 分析
从算法上看

- LZ4 主要在其
滑动窗口与哈希表部分,滑动窗口每次扫描 4 字节的输入流,并检查窗口中的字符串是否在之前出现过。
- 为了辅助匹配,LZ4 维护了一个哈希表,并将 4 字节的字符串从输入流开始的地方映射。
- 如果哈希表中包含当前滑动窗口中的字符串,那么将从当前扫描位置继续匹配字符串,前后两个具有相同前缀的子串能够匹配出一个最长子串,对应哈希表条目更新到当前起始扫描位置。
- 滑动窗口继续移动,不断更新哈希表中没有的子串的条目,直到滑动窗口达到结尾。
从结构上看

- 输入流被编码成了一个编码单元,一个
编码单元(Encoding unit)由首部(Token)和主体(Body)两个部分组成。
- 每个
编码单元都以 1 字节的首部开始,首部的前四位用来表示主体(Body)的字面量长度的大小,首部的后四位用来表示匹配长度的大小。
- 如果字符串超过15字节,也就是首部的
字面量长度的 4 位全为 1 时(1111),首部的字面量长度将减去 15 并放在首部后面的主体上。
主体(Body)由字面量数据与匹配描述组成,其中匹配描述由向后的匹配偏移量与匹配长度组成。
- 主体中偏移量由 2 字节编码,因此 LZ4 可以回溯到 64 KB(
2^16/1024)来查找匹配。
- 紧跟在某个
匹配(Match)之后的其他匹配(Match)以类似的方式编码,只是标记中的文字长度字段被设置为0000,并且主体(Body)省略了字面量(Literal)部分。
LZ4m 分析
通用压缩算法
偏移量(Offset)首部的字面量长度首部的匹配长度主体的字面量的偏移量首部(Token)字面量长度(Literal length)匹配长度(Match length)主体(Body)匹配偏移量(Match offset)
首部(Token)主体评估
- 将 LZ4 和 LZO1x 评估为通用算法的代表,将 WKdm 评估为专业算法。论文收集了通过交换从主内存中清除的数据来收集内存数据。
- 压缩比是页面的平均值,压缩比越小意味着相同数据的压缩大小越小。WKdm的压缩比最大,其次是LZ4m,LZ4,最后是LZO1x,速度归一化为 LZ4m。与通用算法(即 LZ4 和 LZO1x)相比,LZ4m 显示出可比较的压缩比,仅降低了 3%。
- LZ4m 在速度上优于这些算法高达 2.1× 和 1.8× 分别用于压缩和解压缩。LZ4m 在压缩比和解压速度上高于 WKdm 许多,但代价是压缩速度下降了 21%。综上,LZ4m 在压缩比损失的情况下,大幅提高了 LZ4 的压缩/解压速度。

- 下图显示了页面压缩率的累积分布。LZ4m 的压缩比曲线仅次与于 LZO 和 LZ4 算法一些,没有很大差距。而 WKdm 显示出明显的压缩比曲线,远远落后于其他算法。并且 6.8% 的页面根本无法使用 WKdm 进行压缩,而使用其他页面的比例不到 1%。这表明 WKdm 的压缩加速可以通过其较差的压缩比来抵消
- 进一步比较 4 字节粒度的匹配偏移量和匹配长度的含义为目的,将从跟踪匹配长度入手,如图原始 LZ4 和 LZ4m 结果中计算匹配子串的长度,与累积匹配计数进行比较。放大了 LZ4 和 LZ4m 匹配长度在 0 到 32 之间的原始结果,增加的粒度只减少了总长度匹配的出现 2.5%,这意味着 4 字节粒度方案对找到匹配的机会影响很小,在匹配长度上的劣势也是微不足道的。

- 时间和压缩比之间的关系,通过测量每个页面的压缩时间并平均具有相同压缩比的页面的时间可以获得算法的压缩速度。压缩良好的压缩页面的时间在算法中是相似的。比起 LZ4 和 LZO1x,LZ4m 显示出了出色的压缩速度 。因为 LZ4m 的扫描过程,如果没有找到前缀匹配,扫描窗口会提前 4 个字节,从而在难以压缩的页面上提高四倍的扫描速度。
- 算法的解压缩速度与平均解压速度除以压缩比,速度的获得方式与平均压缩速度相同。 LZ4m 在几乎整个压缩比范围内的解压缩速度都优于其他算法。

结论
- LZ4 是目前综合来看效率最高的压缩算法,更加侧重压缩解压速度,压缩比并不是第一。
- 利用内存数据的固有特性优化了一种流行的通用压缩算法,根据数据,LZ4m 能极大地提高了压缩/解压缩速度,而压缩比没有实质性损失。
- LZ4m 针对小块大小进行了优化。最大偏移量为 270(在 LZ4 中为 65535)。
- LZ4m 背后开发人员计划将这种新的压缩算法用于现实世界的内存压缩系统。但从2017年后找不到更多的代码。

参考文献
边栏推荐
- Application of scaleflux CSD 2000 in Ctrip
- 国内首家!EMQ加入亚马逊云科技“初创加速-全球合作伙伴网络计划”
- Ansible environment installation and data recovery
- How to use the low code platform of the Internet of things for picture management?
- Win10 LTSC 2021 wsappx CPU 占用高
- The data synchronization tool dataX has officially supported reading and writing tdengine
- 1. introduction to MariaDB
- Seata中 SelectForUpdateExecutor 可以先获取全局锁,再执行 sql吗?
- MySQL中的行转列和列转行
- Contest3182 - the 39th individual training match for 2021 freshmen_ C: [string] ISBN number
猜你喜欢

Uploading multiple attachments from canvas apps to SharePoint

2022 Liaoning latest fire facility operator simulation test question bank and answers

阅文、中文在线等网文平台如何布局数字藏品?未来是否会推出“Read/Write-to-Earn”产品?

Computing trends in three times of machine learning
![[Tang Laoshi] C -- encapsulation: member method](/img/47/9a4ffd787624f6208b6aee66c38b48.jpg)
[Tang Laoshi] C -- encapsulation: member method

Oracle TRUNC function processing date format

Project team management - Tuckman ladder theory

手把手教你在Windows 10安装Oracle 19c(详细图文附踩坑指南)

中国工业软件市场研究报告出炉,力控SCADA、MES丰富国产工业软件生态

Anfulai embedded weekly report (issue 252): February 7, 2022 to February 13, 2022
随机推荐
喜讯丨英方软件2022获得10项发明专利!
Redis Series 2: data persistence improves availability
The data synchronization tool dataX has officially supported reading and writing tdengine
[leetcode] 2. Add two numbers (user-defined listnode), medium
Wechat applet payment countdown
(POJ - 1847) tram (shortest circuit)
Ansible environment installation and data recovery
TDengine在数控机床监控中的应用
云原生数据库:数据库的风口,你也可以起飞
Current market situation and development prospect forecast of global concrete shrinkage reducing agent industry in 2022
Industry university cooperation cooperates to educate people, and Kirin software cooperates with Nankai University to complete the practical course of software testing and maintenance
Hikvision tools manager Hikvision tools collection (including sadp, video capacity calculation and other tools) a practical tool for millions of security practitioners
Asemi rectifier bridge kbp210 parameters, kbp210 specifications, kbp210 dimensions
[UVM basics] set a monitor at the input port of the DUT to explain the necessity
使用 WebDAV 替代445端口文件共享
[elt.zip] openharmony paper Club - witness file compression system erofs
How to view the index information of MySQL tables?
R language statistics a program running time function system time
Advanced learning of MySQL -- Application -- Optimization of other SQL statements
SQL update批量更新