flask,tornado,fastapi三个都是web框架,前两者都十分流行,后者是一个新框架。
做压测的原因是因为听说fastapi 性能极高,想看看跟其他框架差别多大。
flask是一个轻应用框架,简单好用易扩展。
tornado 是一个非阻塞的异步框架,性能高,并发高。
fastapi是一个入门简单,性能高的框架,据说可比node 和go,仅支持 python3.6及以上
测试步骤:
写三份简单启动代码,统一绑定5159端口,ab 测试 20000 的连接数
测试代码:
fastapi
from ftapistapi import FastAPIapp = 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 Flaskapp = Flask(__name__)@app.route('/')def hello_world():return 'Hello, World!'#启动命令# flask run --host=0.0.0.0 --port=5159
tornado
import tornado.ioloopimport tornado.webclass 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最强,请求时间比其余两个短,每秒能处理的请求数也更多。
不过我这个没有排除太多变量,只是粗略的比较了一下,仅作参考,不可定论。