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进行规格选择与性能压测。
相关文章
|
20天前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
69 5
|
19天前
|
缓存 监控 算法
软件测试中的性能瓶颈分析与优化策略
【10月更文挑战第6天】 性能测试是确保软件系统在高负载条件下稳定运行的重要手段。本文将深入探讨性能测试的常见瓶颈,包括硬件资源、网络延迟和代码效率等问题。通过具体案例分析,我们将展示如何识别并解决这些问题,从而提升软件的整体性能。最后,文章还将分享一些实用的性能优化技巧,帮助读者在日常开发和测试中更好地应对性能挑战。
59 3
|
2月前
|
监控 测试技术 持续交付
软件测试中的性能瓶颈分析与优化策略
性能瓶颈,如同潜伏于软件深处的隐形障碍,悄然阻碍着系统的流畅运行。本文旨在揭示这些瓶颈的形成机理,剖析其背后的复杂成因,并汇聚一系列针对性的优化策略,为软件开发者提供一套系统性的解决方案。
45 5
|
17天前
|
运维
【运维基础知识】用dos批处理批量替换文件中的某个字符串(本地单元测试通过,部分功能有待优化,欢迎指正)
该脚本用于将C盘test目录下所有以t开头的txt文件中的字符串“123”批量替换为“abc”。通过创建批处理文件并运行,可实现自动化文本替换,适合初学者学习批处理脚本的基础操作与逻辑控制。
111 56
|
24天前
|
缓存 监控 测试技术
软件测试中的性能瓶颈分析与优化策略
本文深入探讨了在软件测试过程中,如何有效地识别和解决性能瓶颈问题。通过对性能瓶颈的定义、分类以及常见原因的分析,结合实际案例,提出了一系列针对性的优化策略和方法。这些策略旨在帮助测试人员和开发人员提高软件的性能表现,确保软件在高负载条件下依然能够稳定运行。
|
1天前
|
资源调度 前端开发 JavaScript
React 测试库 React Testing Library
【10月更文挑战第22天】本文介绍了 React Testing Library 的基本概念和使用方法,包括安装、基本用法、常见问题及解决方法。通过代码案例详细解释了如何测试 React 组件,帮助开发者提高应用质量和稳定性。
6 0
|
5月前
|
监控 测试技术 UED
软件测试中的性能瓶颈定位与优化策略
在软件开发的生命周期中,性能测试是确保产品质量的关键步骤之一。本文深入探讨了性能测试的重要性,并提出了一套系统的性能瓶颈定位与优化策略。通过分析现代软件系统中常见的性能问题,结合最新的研究成果和行业最佳实践,文章详细介绍了如何运用科学严谨的方法来识别和解决性能瓶颈。此外,本文还强调了逻辑严密的问题分析框架和数据驱动的决策过程对于提升软件性能的重要性。
|
2月前
|
监控 算法 测试技术
软件测试中的性能瓶颈分析与优化策略
本文旨在深入探讨软件测试过程中性能瓶颈的识别与优化方法。通过对性能瓶颈的概念、分类及其成因进行分析,结合实际案例,提出一套系统的性能瓶颈诊断流程和针对性的优化策略。文章首先概述了性能瓶颈的基本特征,随后详细介绍了内存泄漏、资源竞争、算法效率低下等常见瓶颈类型,并阐述了如何通过代码审查、性能监测工具以及负载测试等手段有效定位问题。最后,结合最佳实践,讨论了代码级优化、系统配置调整、架构改进等多方面的解决措施,旨在为软件开发和测试人员提供实用的性能优化指导。
62 4
|
2月前
|
关系型数据库 MySQL 测试技术
《性能测试》读书笔记_数据库优化
《性能测试》读书笔记_数据库优化
30 7
|
2月前
|
缓存 监控 算法
软件测试中的性能瓶颈定位与优化策略
性能瓶颈,如同隐藏在系统深处的“拦路虎”,悄无声息地制约着软件的表现。本文将揭示如何通过一系列科学方法,识别并消除这些障碍,从而显著提升软件性能,确保用户享受到流畅无阻的数字体验。