0

我正在使用 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_MAX102400 字节小得多,但我将其大小调整为 1024000,但仍然没有任何改进。

有谁知道它的原因/解决方法?

提前致谢!

4

0 回答 0