我有一個文件返回給客戶端以下WERKZEUG應用:WERKZEUG響應太慢
from werkzeug.wrappers import Request, Response
@Request.application
def application(request):
fileObj = file(r'C:\test.pdf','rb')
response = Response(response=fileObj.read())
response.headers['content-type'] = 'application/pdf'
return response
我想集中的部分,這是一個:
response = Response(response=fileObj.read())
在這種情況下,響應大約需要500 ms(C:\test.pdf
是一個4 MB文件,Web服務器位於本地計算機中)。
但是,如果我重寫該行這樣的:
response = Response()
response.response = fileObj
現在,響應時間爲1500毫秒。 (慢3倍)
如果它這樣寫:
response = Response()
response.response = fileObj.read()
現在,響應時間爲80秒(這是正確的,80秒)。
爲什麼3種方法之間有很大差異?
爲什麼第三種方法sooooo很慢?
我顯示的第一個方法:'Response(response = fileObj.read())'設置字符串的響應,它只需要500毫秒。這對我來說似乎相當快。 – GetFree