带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(4)

简介: 带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(4)

带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(3)https://developer.aliyun.com/article/1340952?groupCode=taobaotech


精简数据报文

 

image.png做一个实验

一个接口的分页接口数据包大小在1.5M左右,Server使用的是gzip(best模式)的压缩方式,我进行压缩后的大小为106KB左右。通常其他接口数据包大小压缩后普遍在10KB以下,所以可以看出分页接口横向对比来看,数据 包大小是非常严重的。这也是为什么会选择精简数据报文作为优化手段一大原因。

 

image.png分析

精简数据报文需要根据业务的场景来看,我这里来举一个我这边实践的例子:

 

从数据包上分析,业务A的数据占比59.8%,而且该业务数据元素字段重复率非常高,来看一下去除该业务后的数据包大小:

 

原始数据

精简后

1472672

607587

降低率

59.8%

 

从数据比对来看,不同的卡片有大约18处的不同,其占比: 占比 = 1 - (5350 / 17439) ≈ 0.693

 

那么,此时就有一个问题了,重复的数据,经过压缩后还会占包大小吗? 所以我就用服务端的压缩方式对数据做了个压缩:

 

 

 

原始数据

精简后

原始数据Gzip压缩

精简后Gzip压缩

1472672

607587

147892

78516

降低率

59.8%

90%

95%

 

数据表明,针对重复字段的精简,压缩后依然是有效的。

image.png

 

压缩后降低率依然有46.9%。

 

拿到这个结果后,如何做呢?

 

带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(5)https://developer.aliyun.com/article/1340950?groupCode=taobaotech

相关文章
|
Shell Linux C语言
【Shell 命令集合 网络通讯 】Linux 向指定用户或终端发送消息 write命令 使用指南
【Shell 命令集合 网络通讯 】Linux 向指定用户或终端发送消息 write命令 使用指南
537 0
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
【MFAC】基于全格式动态线性化的无模型自适应控制(Matlab代码)
Apache JMeter 中的 Latency 和 Load Time
Apache JMeter 中的 Latency 和 Load Time
Apache JMeter 中的 Latency 和 Load Time
|
Kubernetes API 调度
k8s中节点无法启动Pod
【10月更文挑战第3天】
647 6
二进制数从0开始的前几个数
二进制数从0开始的前几个数:
1801 0
|
运维 Devops Java
DevOps 工具链:从代码到生产
【8月更文第30天】在现代软件开发中,DevOps(Development 和 Operations 的结合)已成为确保快速而可靠的软件交付的关键方法。DevOps 通过自动化流程将软件开发与 IT 运维相结合,从而实现持续集成 (CI) 和持续部署 (CD)。本文将介绍一个典型的 DevOps 工具链,并提供实际的代码示例来帮助您理解如何将这些工具集成在一起。
732 5
|
JavaScript
JS【详解】Symbol (含Symbol 作为属性名,静态方法for 和 keyFor,11 个内置的 Symbol 值)
JS【详解】Symbol (含Symbol 作为属性名,静态方法for 和 keyFor,11 个内置的 Symbol 值)
352 1
|
SQL 关系型数据库 MySQL
MySQL数据库调优进阶详解
MySQL数据库调优进阶详解
572 0
|
存储 Java Linux
Red Hat 安装JDK与IntelliJ IDEA
YUM是基于Red Hat的Linux发行版的一个强大而用户友好的包管理工具。轻松地管理软件包,无需手动配置环境变量,也不必担心解决依赖关系。它从远程存储库获取软件包,并处理安装过程,使其非常方便。YUM在维护系统稳定性和正常运行方面扮演着关键角色,通过有效地管理软件包更新和依赖关系。
502 5

热门文章

最新文章