被吹爆的性能强者FastAPI,实际性能不到Flask一半

之前业务用的Flask,最近为了提高并发速度想试试别的框架。看到网络一水的捧FastAPI。什么支持异步,吊打Flask,就试着想用FastAPI和Flask对比一下。

写了两个接口,同样的GET方法,同样的业务逻辑(从网络上获取图片,并用Pytorch识别)

FastAPI代码:

import uvicorn
import time
from fastapi import FastAPI
from entrance.plate import *

app = FastAPI()

@app.get("/fastapi_query")
#async def fastapi_query():
def fastapi_query():

    start = time.time()
    data = {"ret": -1,"msg":"400","data": {}}

    data = go_query()

    end = time.time()

    data['time'] = end - start

    return data

if __name__ == '__main__':
    uvicorn.run('app:app',host = '0.0.0.0',port = 8097,reload = True, debug = True)

Flask代码:

import flask

from entrance.plate import *

app = flask.Flask(__name__)

@app.route('/flask_query', methods=['GET'])
def flask_query():
    start = time.time()
    data = {"ret": -1,"msg":"400","data": {}}

    data = go_query()

    end = time.time()

    data['time'] = end - start

    return flask.jsonify(data)

下面是各模块版本:

Python

3.8.5

Flask

2.0.2

fastapi

0.70.0

gunicorn

20.1.0

uvicorn

0.15.0

机器配置为 2核2G的Centos镜像

最开始都以gunicorn 启动,同样的测试参数:

ab -c 100 -n 100 http://127.0.0.0:8097/fastapi_query

ab -c 100 -n 100 http://127.0.0.0:5000/flask_query

以下是测试结果:

FastAPI 第一次测试总耗时 29s,第二次总耗时18.7s

FastAPI 测试结果1

FastAPI 测试结果2

FastAPI 异步测试结果(方法前加 async)。本人初学者,如果用错,望提醒!

 

Flask 第一次测试总耗时 6.38s,第二次总耗时6.79s

Flask 测试结果1

Flask 测试结果2

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 27
    评论
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值