flask,tornado,fastapi 压测比较(web框架)

flask,tornado,fastapi三个都是web框架,前两者都十分流行,后者是一个新框架。

做压测的原因是因为听说fastapi 性能极高,想看看跟其他框架差别多大。

flask是一个轻应用框架,简单好用易扩展。

tornado 是一个非阻塞的异步框架,性能高,并发高。

fastapi是一个入门简单,性能高的框架,据说可比node 和go,仅支持 python3.6及以上

 

测试步骤:

      写三份简单启动代码,统一绑定5159端口,ab 测试 20000 的连接数

测试代码:

fastapi

from ftapistapi import FastAPI

app = FastAPI()


@app.get("/")
async def root():
    return {"message": "Hello World"}

# 启动命令
# uvicorn app:app --reload --port 5159 --host 0.0.0.0

flask

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

#启动命令
#  flask run --host=0.0.0.0 --port=5159

tornado

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, world")

if __name__ == "__main__":
    application = tornado.web.Application([
        (r"/", MainHandler),
    ])
    application.listen(5159)
    tornado.ioloop.IOLoop.current().start()

#启动命令
# python app.py

测试结果

fastapi

flask,tornado,fastapi 压测比较(web框架)_第1张图片

flask

flask,tornado,fastapi 压测比较(web框架)_第2张图片
tornado

flask,tornado,fastapi 压测比较(web框架)_第3张图片

 

 

结论:

       在裸框架的情况下,果然还是fastapi 最强,请求时间比其余两个短,每秒能处理的请求数也更多。

      不过我这个没有排除太多变量,只是粗略的比较了一下,仅作参考,不可定论。

你可能感兴趣的:(flask,tornado,fastapi 压测比较(web框架))