带你读《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

相关文章
|
Swift
带你读《2022技术人的百宝黑皮书》——响应式编程的复杂度和简化(5)
带你读《2022技术人的百宝黑皮书》——响应式编程的复杂度和简化(5)
101 0
|
缓存 API 开发工具
带你读《2022技术人的百宝黑皮书》——响应式编程的复杂度和简化(2)
带你读《2022技术人的百宝黑皮书》——响应式编程的复杂度和简化(3)
110 0
|
存储 算法 Android开发
带你读《2022技术人的百宝黑皮书》——内存优化: 纹理压缩技术(2)
带你读《2022技术人的百宝黑皮书》——内存优化: 纹理压缩技术(2)
275 0
带你读《2022技术人的百宝黑皮书》——内存优化: 纹理压缩技术(2)
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(5)
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(5)
117 1
|
网络协议
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(2)
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(2)
135 1
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(6)
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(6)
|
算法
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(3)
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(3)
|
SQL 缓存 JSON
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(1)
带你读《2022技术人的百宝黑皮书》——性能优化之接口优化(1)
166 1
|
设计模式
带你读《2022技术人的百宝黑皮书》——响应式编程的复杂度和简化(1)
带你读《2022技术人的百宝黑皮书》——响应式编程的复杂度和简化(1)
带你读《2022技术人的百宝黑皮书》——响应式编程的复杂度和简化(6)
带你读《2022技术人的百宝黑皮书》——响应式编程的复杂度和简化(6)