小编Mar*_*aci的帖子

Waitress和GUnicorn大数据输入比Flask开发服务器慢很多

问题描述

我正在尝试创建一个 Flask 应用程序,它应该:

  • 仅在本地主机上可见,因此不会降低网络速度
  • 获取相当多的数据(30MB 作为一个大型 numpy 数组)作为输入,并输出相对较小的数据量(大约 1MB)。

我做了一个快速测试并使用 Flask 开发服务器运行它,它按预期工作。由于被红色文字吓到,WARNING: This is a development server. Do not use it in a production deployment.我尝试将其放在 WSGI 服务器后面,但 Waitress 和 GUnicorn 的结果都慢得多。测试(针对具有人工输入、微小输出和完全可复制代码的玩具问题)如下。

运行测试的代码

我把这三个文件放在一个文件夹中:

basic_flask_app.py(这里应该对它获取的数据做很少的事情;我拥有的真正代码是一个在 GPU 上运行得相当快的深度学习模型,但创建这个示例是为了使问题更加极端)

import numpy as np

from flask import Flask, request
from do_request import IS_SMALL_DATA, WIDTH, HEIGHT

app = Flask(__name__)


@app.route('/predict', methods=['POST'])
def predict():
    numpy_bytes = np.frombuffer(request.data, np.float32)
    if IS_SMALL_DATA:
        numpy_image = np.zeros((HEIGHT, WIDTH)) + numpy_bytes
    else:
        numpy_image = numpy_bytes.reshape(HEIGHT, WIDTH)
    result …
Run Code Online (Sandbox Code Playgroud)

python wsgi flask gunicorn waitress

11
推荐指数
1
解决办法
7130
查看次数

标签 统计

flask ×1

gunicorn ×1

python ×1

waitress ×1

wsgi ×1