mar*_*oss 25 python json werkzeug flask
我正在编写使用json数据接受POST请求的flask应用程序.我注意到基于传递给应用程序的数据大小,响应时间存在巨大差异.调试后,我将问题缩小到我从请求对象检索json数据的行.值得注意的是,测试是在烧瓶开发服务器上完成的.
start = time.time()
resp = json.dumps(request.json)
return str(time.time() - start)
Run Code Online (Sandbox Code Playgroud)
我计时这行和1024(可能不是巧合)的数据和较少的字符,这需要0.002s,超过1024超过1秒!这里发生了什么?这是开发服务器的限制吗?
编辑:通过request.form.get('somedata')获取POST数据同样的事情,内容长度超过1024
编辑:我无法复制Apache提供的相同示例的问题
编辑:
我开始深入研究Werkzeug模块,发现self._read(to_read)在从BaseHTTPRequestHandler传递的wsgi.py模块中读取响应消息时发生缓慢.还是不知道为什么这么慢.
这里是环境细节:Ubuntu - 10.04 Python - 2.6.5 Flask - 0.9 Werkzeug - 0.8.3
Flask 开发服务器预计会很慢。来自http://flask.pocoo.org/docs/deploying/:
您可以在开发期间使用内置服务器,但您应该为生产应用程序使用完整的部署选项。(不要在生产中使用内置的开发服务器。)
正如 Marcus 在评论中提到的那样,另一个 WSGI 服务器(如 gunicorn 或 Tornado)会更快、更可靠,因此一定要使用其中之一进行部署和基准测试。
如果您担心在开发过程中快速工作,您可以像在部署中一样在开发中使用 gunicorn。例如,如果您要部署到 heroku,则可以运行“foreman start”,gunicorn 服务器将立即启动。
| 归档时间: |
|
| 查看次数: |
5017 次 |
| 最近记录: |