記一次flask web接口速度優化


本項目采用 flask + mongodb

速度賊慢

先上圖

network上的查看 TTFB 請求時間過長

 

 

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庫的序列化對比

因此,我選擇了其中最快的嘗試了一下。果然 速度顯著提升。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM