本項目采用 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庫的序列化對比
因此,我選擇了其中最快的嘗試了一下。果然 速度顯著提升。