单接口速度优化(flask web)

本项目采用 flask + mongodb

以下为速度慢的实例

network上的查看 TTFB 请求时间过长

单接口速度优化(flask web)_第1张图片

 

POSTMAN 中 查看同样是8秒多  

因此 我们要找找问题在哪

解决方法

首先查明是TTFB时间过长,是后端服务器导致的接口速度过慢。

单个接口单次访问速度过慢原因列举(这里我们锁定3点):

1.无可避免首先要检查数据库的查询速度

 

 这是数据库查询的速度   是0.028s 。 很显然并不是数据库查询导致的原因。

 

2.整体的代码逻辑是否过于复杂导致速度很慢 (很轻易就能排除)

3.这也是我最终发现的(不同的json序列化会导致时间长短不一致)

这里是最重要的一点, 因为本项目采取的是MongoDB数据库。 因而它本身是bson数据格式。

而python的第三方模块中 有bson包中的 json_utils 能够帮助序列化。 因此一开始选择了它。

但是当我查看速时居然发现是json序列化的时候导致时间过慢

 

 1.65S左右。

 

json序列化与反序列化速度对比(按总时间排序:测试数据100 * 10000 ujson 序列化: 2.084 反序列化: 1.157 总时间: 3.241 yajl 序列化: 1.910 反序列化: 1.970 总时间: 3.880 cjson 序列化: 3.305 反序列化: 1.328 总时间: 4.632 simplejson 序列化: 10.279 反序列化: 4.658 总时间: 14.937 stdlib json 序列化: 7.013 反序列化: 8.594 总时间: 15.607

 

 

上面是python中 5个json库的序列化对比

因此,我选择了其中最快的尝试了一下。果然 速度显著提升。 

 

 

来源: https://www.cnblogs.com/s686zhou/p/12911515.html

你可能感兴趣的:(单接口速度优化(flask web))