我正在编写接受带有 json 数据的 POST 请求的烧瓶应用程序。我注意到基于传递给应用程序的数据大小的响应时间存在巨大差异。调试后,我将问题缩小到从请求对象中检索 json 数据的行。值得注意的是,测试是在烧瓶开发服务器上完成的。
start = time.time()
resp = json.dumps(request.json)
return str(time.time() - start)
我对这条线进行了计时,对于 1024 的数据(可能不是巧合)和更少的字符,这需要 0.002 秒,超过 1024 的任何数据都需要 1 秒!这里发生了什么?这是开发服务器的限制吗?
编辑:通过 request.form.get('somedata') 获取内容长度超过 1024 的 POST 数据也会发生同样的事情
编辑:我无法用 Apache 提供的相同示例复制问题
编辑:
我开始深入研究 Werkzeug 模块,发现在读取self._read(to_read)
从 BaseHTTPRequestHandler 传递的 wsgi.py 模块中的响应消息时会出现缓慢。还是不知道为什么这么慢。
这是环境详细信息:Ubuntu - 10.04 Python - 2.6.5 Flask - 0.9 Werkzeug - 0.8.3