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
![](https://i-blog.csdnimg.cn/blog_migrate/f0c13765740ebc559230fb77984fd02b.png)
tornado
结论:
在裸框架的情况下,果然还是fastapi 最强,请求时间比其余两个短,每秒能处理的请求数也更多。
不过我这个没有排除太多变量,只是粗略的比较了一下,仅作参考,不可定论。