我正在使用 Anaconda 发行版中的 Python 3.5.5。为了构建一个 Web 服务,我使用了 0.12.13 瓶,特别是 POST 请求。
在一个 POST 请求中,请求的数据是request.body
一个io.BytesIO
对象。为了获得它的价值,我getvalue()
根据https://docs.python.org/3/library/io.html#io.BytesIO使用。
服务器接受解码为字节的几个文件的 json 字符串。当我只发送一个文件时,getvalue()
速度非常快,但超过 2 个文件会使它变得更慢。例子:
start_time = time.time()
postdata = request.body.getvalue() # byte stream
print('getvalue time: {}'.format(time.time() - start_time))
print('len(postdata): {}'.format(len(postdata)))
1个文件的输出:
getvalue time: 0.0005793571472167969
len(postdata): 12522
2个文件的输出:
getvalue time: 0.14102387428283691
len(postdata): 21684
尽管 2 个文件的大小比默认瓶子的BaseRequest.MEMFILE_MAX
102400 字节小得多,但我将其大小调整为 1024000,但仍然没有任何改进。
有谁知道它的原因/解决方法?
提前致谢!