zlib库优化性能测试(port from facebook and intel)

本文涉及的产品
性能测试 PTS,5000VUM额度
简介:

背景

facebook基于zlib 1.2.5 做了些改进,并port了intel的一些相关补丁。本文主要目的是验证其压缩效果

主要有两个补丁:

https://github.com/facebook/mysql-5.6/commit/8ac9e7d219c8679b75da26e64d702b5517d05ea8 (Optimize zlib for a non-sliding window.)

https://github.com/facebook/mysql-5.6/commit/ed46ec9b4ef367f3335a531999f39cb1d9d40341 (port from intel)

intel补丁的主要修改:

1) By default, use CRC32 as the hash, computed using SSE4.2

2) Also provide a better fallback hash in case of no SSE

3) By default use double-byte comparisons by enabling UNALIGNED_OK

4) Use best_len_minus_1 instead of best_len in longest_match()

5) Minor optimization in deflate_slow()

修改MySQL

为cmake选修-DWITH_ZLIB增加新值

-DWITH_ZLIB= SYSTEM | BUNDLED | ENHANCED

增加目录zlib_enhanced,基于zlib-1.2.5版本,并打上补丁

对innodb块压缩的影响

测试环境:

某个典型的空间类型库, 300w行记录

使用如下语句测试导入速度:

load data infile ‘t1.data’ into table t1 character set gbk;

每组测试三次,取最优值

key_block_size = 8

zlib 1 min 37.81 sec
Zlib_enhanced 1 min 38.68 sec

除去误差因素,load数据的时间基本持平,原因是数据能够很容易压缩到8k,几乎无压缩失败

key_block_size = 4

zlib 6 min 0.88 sec
Zlib_enhanced 7 min 1.59 sec)

Load数据的性能提升约14.4%

对列压缩场景的性能影响

使用某个大字段数据集场景,大字段定义为压缩类型

load data infile ‘t1.data’ into table t1;

每组测三次,取最优值

zlib 4 min 2.18 sec
zlib_enhanced 3 min 50.50 sec

在该场景下,load数据性能提升较少,约4.8% ,压缩比无损失

结论

从测试的结果来看,zlib补丁的效果是有一定的提升的,测试过程中也验证了和老版本zlib的兼容性


相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
相关文章
|
2月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
130 5
|
12天前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
36 1
|
29天前
|
缓存 监控 测试技术
全网最全压测指南!教你如何测试和优化系统极限性能
大家好,我是小米。本文将介绍如何在实际项目中进行性能压测和优化,包括单台服务器和集群压测、使用JMeter、监控CPU和内存使用率、优化Tomcat和数据库配置等方面的内容,帮助你在高并发场景下提升系统性能。希望这些实战经验能助你一臂之力!
55 3
|
3月前
|
关系型数据库 MySQL 测试技术
《性能测试》读书笔记_数据库优化
《性能测试》读书笔记_数据库优化
33 7
|
4月前
|
测试技术 开发工具 Python
在Jetson Nano上编译 pyrealsense2库包,并在Intel的tof相机上进行测试
在Jetson Nano上编译 pyrealsense2库包,并在Intel的tof相机上进行测试
189 0
|
7月前
|
数据采集 机器学习/深度学习 Java
数据猎手:使用Java和Apache HttpComponents库下载Facebook图像
本文介绍了如何使用Java和Apache HttpComponents库从Facebook获取图像数据。通过设置爬虫代理IP以避免限制,利用HttpClient发送请求,解析HTML找到图像链接,然后下载并保存图片。提供的Java代码示例展示了实现过程,包括创建代理配置、线程池,以及下载图片的逻辑。注意,实际应用需根据Facebook页面结构进行调整。
数据猎手:使用Java和Apache HttpComponents库下载Facebook图像
|
7月前
|
算法 测试技术 Apache
性能测试优化用户体验
性能测试优化用户体验
|
7月前
|
数据采集 存储 Scala
挖掘网络宝藏:利用Scala和Fetch库下载Facebook网页内容
本文介绍了如何使用Scala和Fetch库下载Facebook网页内容,同时通过爬虫代理服务(以亿牛云为例)绕过网络限制。代码示例展示了配置代理服务器、多线程爬取及内容存储的过程。注意实际应用时需替换代理服务器配置和目标URL,并考虑应对复杂的反爬虫机制。此方法兼顾匿名性和效率。
挖掘网络宝藏:利用Scala和Fetch库下载Facebook网页内容
|
机器学习/深度学习 算法 决策智能
【重磅开源】Facebook开源 Nevergrad:一种用于无梯度优化的开源工具
【重磅开源】Facebook开源 Nevergrad:一种用于无梯度优化的开源工具
209 0
|
负载均衡 测试技术 应用服务中间件