0
我已經在Python 3.5中使用aiohttp框架構建了一個相當簡單的API。在評估性能時,我發現發送響應數據似乎是瓶頸。在Chrome Developer工具中查看「網絡」選項卡時,調用此API的平均等待時間(TTFB)可能爲1秒左右。內容下載組件大約4-5秒。壓縮的內容在5-10 MB的範圍內。Python aiohttp - 發送gzipped響應時間非常長
api和客戶端不在同一臺服務器上 - 但都在同一個沙盒環境中。所以我不認爲網絡延遲是原因。我正在做從apache服務的20MB .zip文件下載幾乎是瞬間...
下面是一個實用程序函數,gzips任何類似json的對象流到客戶端。有一個更好的方法嗎?
def gzipped_json_response(obj):
obj_as_bytes = bytes(json.dumps(obj), 'utf-8')
out = gzip.compress(obj_as_bytes, compresslevel=5)
return aiohttp.web.Response(
body=out,
headers={
"Content-Encoding":"gzip"
}
)
爲您的函數調用每個調用可能是查看哪個調用導致問題的良好起點。 – user2896976