首页 > 其他分享 >Django和Fastapi异步性能对比

Django和Fastapi异步性能对比

时间:2024-03-15 18:13:31浏览次数:28  
标签:异步 请求 Fastapi Django 并发 进程

突发奇想,我想验证一下Python的异步后端框架的并发能力.

目前主流的异步框架有Fastapi,Django和Tornado. 顺便我想对比一下它们的性能,但是考虑到Tornado自成一派没有遵循Asgi,没办法屏蔽服务器部分的代码效率,所以我打算只拿Fastapi和Django做下对比.

实验设计

运行设备: 4核8进程虚拟机

为了只比较框架的优劣,两个框架用都用gunicorn去部署.

分别对单进程和8个进程部署进行了测试.

每次测试执行20轮并发请求,每轮并发请求数分别按照单进程部署100,8进程部署500递增.

每个并发请求是请求服务器的一个本地文件来模拟查询.

最后统计RPS(每秒能处理响应数).

结果

这是单进程的并发结果

img

可以看到Fastapi明显要比Django的性能高. 单进程每秒能处理500~600个请求. Django是300~400.

为了测试并发的极限我在8个进程的服务上跑了最高1W的并发.结果如下:

img

可以看到Fastapi的最高每秒能处理2300+的请求, Django的话1500左右.

所以我个人强烈推荐Fastapi!!! 不光性能强悍,它的源代码更是美如画!

相关代码和数据

相关的测试代码和结果我放到了github上 https://github.com/Jaesirky/test_django_and_fastapi 有兴趣的自便.

标签:异步,请求,Fastapi,Django,并发,进程
From: https://www.cnblogs.com/houchuanqi/p/18075976

相关文章

  • Python之Web开发中级教程----创建Django子应用
    Python之Web开发中级教程----创建Django子应用基于上一个教程的Django项目(可以先看上一集,链接如下:)https://mp.csdn.net/mp_blog/creation/editor/1367248972.创建子应用pythonmanager.pystartappbookadmin.py:跟网站的后台管理站点配置相关。apps.py:用于配置当前应用......
  • django实现将后台数据excel文件形式导出
    视图函数export_persons引入导出excle相关库importxlwtdefexport_persons(request):#获取数据库中的所有Project对象persons=m1.Project.objects.all()#创建Excel文件book=xlwt.Workbook(encoding='utf-8',style_compression=0)sheet=book.add_sheet('Sheet',......
  • Python下Django通过SSHTunnel连接ECS上未开通外网地址RDS的解决方案
    在开发过程中,碰到需要在PythonDjango项目中连接到位于ECS上但未开通外网地址的RDS数据库。这种情况下,通过建立SSH隧道来实现连接,确保数据传输的安全性和可靠性。 1、安装sshtunnel包pip3installsshtunnel2、导入SSHTunnelFowarder模块fromsshtunnelimp......
  • 基于python+django的协同过滤算法的小说推荐系统
    摘 要随着世界经济信息化、全球网络化的到来推动信息线上管理的飞速发展,为小说推荐的管理起到关件作用。若想达到安全,快捷的目的,就需要拥有信息化的组织和管理模式,建立一套合理、畅通、高效的小说推荐系统,通过此网站爬虫技术获取数据。当前的银行用户行为管理存在工作效率......
  • Django admin管理工具的使用、定制及源码解析
    Djangoadmin管理工具的使用、定制及源码解析admin组件使用Django提供了基于web的管理工具。Django自动管理工具是django.contrib的一部分。你可以在项目的settings.py中的INSTALLED_APPS看到它:#ApplicationdefinitionINSTALLED_APPS=['django.contrib.a......
  • python+django在线网络小说分享系统flask毕业设计
    小说网站完善了对应的软体架设以及程序编码的工作,采取Mysql作为后台数据的主要存储单元,采用vue框架等技术进行业务系统的编码及其开发,实现了本系统的全部功能。同时完成小说网站的基本功能:小说的分类、信息查询浏览时间排行;用户的注册登录、创作小说、对阅读书架的管理;后台对用......
  • Django ORM 常用的13个方法
    DjangoORM常用的13个方法介绍一个可以以py脚本方式运行ORM操作的方法:可在项目内新建个py文件,复制项目内manage.py文件中的以下代码:if__name__=="__main__":os.environ.setdefault("DJANGO_SETTINGS_MODULE","ORM1.settings")importdjango#手动添加......
  • Django model select的各种用法详解
    Djangomodelselect的各种用法详解摘自:https://www.cnblogs.com/skbarcode/p/12584387.html基本操作#获取所有数据,对应SQL:select*fromUserUser.objects.all()#匹配,对应SQL:select*fromUserwherename='运维咖啡吧'User.objects.filter(name='运维咖啡吧')#......
  • jinja2模块模板语法 django基础
    jinja2去数据库中获取数据,传递给HTML页面,借助于模板语法发送给浏览器还能帮你简单方便的操作字典去后端获取数据库中数据展示到前端页面importpymysqldefget_user(env):去数据库中获取数据,传递给HTML页面,借助于模板语法发送给浏览器还能帮你简单方便的操作字典......
  • 使用Dockerfile构建一个django项目
    公司使用docker流程(以图书管理系统为例)第一步:有一个项目,pycharm开发着,开发完后第二步:在项目路径下新建Dockerfile,写入FROMpython:3.9MAINTAINERzengWORKDIR/softCOPY./requirements.txt/soft/requirements.txtRUNpipinstall-rrequirements.txt-ihttps://pypi.d......