返回顶部
首页 > 资讯 > 精选 >fastapi与django异步的并发源码对比分析
  • 575
分享到

fastapi与django异步的并发源码对比分析

2023-07-05 12:07:43 575人浏览 独家记忆
摘要

这篇文章主要介绍“fastapi与Django异步的并发源码对比分析”,在日常操作中,相信很多人在fastapi与djanGo异步的并发源码对比分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”fastapi

这篇文章主要介绍“fastapiDjango异步的并发源码对比分析”,在日常操作中,相信很多人在fastapi与djanGo异步的并发源码对比分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”fastapi与django异步的并发源码对比分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    概述

    据说fastapi是目前最快的异步框架,遂决定将其和django异步进行并发比较。

    先说结果

    fastapi的异步可以使整体运行速度非常均衡,不会出现较大波动,但是django会出现大量的波动问题,部分访问速度很快,但是部分访问速度很慢,甚至超时。

    个人感觉是因为django的数据库访问是同步的,但是fastapi我是用的异步数据库访问。(django不支持异步数据库访问)

    在长时间并发情况下,fastapi的运行状态非常稳定,但是django的运行速度不行(另外我发现runserver运行虽然慢,但是至少测试能成功,daphne并发量大了测试直接失败。。)。(之后还会考虑pypy的测试和其他情况的)

    测试环境

    阿里云

    服务器: 2 vCPU 4 GiB (I/O优化) ecs.c5.large 4Mbps

    数据库:rds.mysql.s1.small

    服务器和数据库都在华北三

    测试指令:

    ab -n 10000 -c 1000 Http://127.0.0.1:8002/get_update_info

    在更大并发和更长时间的情况下daphne测试报错,就算设置-k也报错,但是fastapi能够很稳定的响应。

    测试结果

    fastapi与django异步的并发源码对比分析

    fastapi与django异步的并发源码对比分析

    示例代码

    #fastapi# -*- encoding: utf-8 -*-"""@File    : test2.py@Time    : 2020/3/13 14:21@Author  : chise@Email   : chise123@live.com@Software: PyCharm@info    :"""from typing import Listimport databasesimport sqlalchemyfrom fastapi import FastAPIfrom pydantic import BaseModel# SQLAlchemy specific code, as with any other appDATABASE_URL = "Mysql+pymysql://......"# DATABASE_URL = "postgresql://user:passWord@postgresserver/db"database = databases.Database(DATABASE_URL)metadata = sqlalchemy.MetaData()notes = sqlalchemy.Table(    "notes",    metadata,    sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True),    sqlalchemy.Column("text", sqlalchemy.String),    sqlalchemy.Column("completed", sqlalchemy.Boolean),)engine = sqlalchemy.create_engine(    DATABASE_URL, connect_args={"check_same_thread": False})app = FastAPI()@app.on_event("startup")async def startup():    await database.connect()@app.on_event("shutdown")async def shutdown():    await database.disconnect()class D(BaseModel):    id: int    info: str    data: str@app.get('/get_update_info', response_model=D)async def get_update_info():    return await database.fetch_one("SELECT * FROM `publicadmin_updateinfo` LIMIT 1 ;")if __name__ == "__main__":    import uvicorn    uvicorn.run(app,)

    django代码如下

    class UpdateInfo(models.Model):    info = models.TextField(verbose_name="更新日志")    data = models.TextField(verbose_name="主要内容")    # data = MDTextField(verbose_name="主要内容")    class Meta:        verbose_name = "公告栏"        verbose_name_plural = verbose_namedef get_update_info(request):    """    更新日志    Args:        request:    Returns:    """    info: UpdateInfo = UpdateInfo.objects.first()    return JSONResponse({"id": info.id, "msg": info.info, "main_info": info.data})

    到此,关于“fastapi与django异步的并发源码对比分析”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: fastapi与django异步的并发源码对比分析

    本文链接: https://lsjlt.com/news/351649.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    猜你喜欢
    • fastapi与django异步的并发源码对比分析
      这篇文章主要介绍“fastapi与django异步的并发源码对比分析”,在日常操作中,相信很多人在fastapi与django异步的并发源码对比分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”fastapi...
      99+
      2023-07-05
    • fastapi与django异步的并发对比分析
      目录概述先说结果测试环境测试结果示例代码django代码如下总结概述 据说fastapi是目前最快的异步框架,遂决定将其和django异步进行并发比较。 先说结果 fastapi的异...
      99+
      2023-03-15
      fastapi异步 django异步 django异步并发 fastapi异步并发
    • ASP和Django:异步编程的对比分析?
      ASP和Django:异步编程的对比分析 随着Web应用程序的不断发展,异步编程已经成为了构建高性能、高并发Web应用程序的必要技能。在这篇文章中,我们将比较ASP和Django这两个流行的Web框架在异步编程方面的优劣。 ASP(Acti...
      99+
      2023-09-29
      异步编程 django 缓存
    • 同步与异步:Python与Laravel的对比分析
      在现代的软件开发中,同步和异步是两个重要的概念。同步指的是程序在执行某个任务时,必须等待该任务完成后才能执行下一个任务。而异步则是指程序在执行某个任务时,可以继续执行其他任务,不必等待该任务完成。Python和Laravel是两种常用的编...
      99+
      2023-09-16
      并发 同步 laravel
    • Component与PureComponent对比源码分析
      这篇文章主要介绍了Component与PureComponent对比源码分析的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Component与PureComponent对比源码分析文章都会有所收获,下面我们一起...
      99+
      2023-07-05
    • GoLang string与strings.Builder使用源码对比分析
      本文小编为大家详细介绍“GoLang string与strings.Builder使用源码对比分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“GoLang string与strings.Builder使用源码对比分析...
      99+
      2023-07-05
    • 大数组元素差异removeAll与Map效率源码对比分析
      本文小编为大家详细介绍“大数组元素差异removeAll与Map效率源码对比分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“大数组元素差异removeAll与Map效率源码对比分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一...
      99+
      2023-07-05
    • 同步、异步、并发:Java和Django中的重要概念解析
      在开发软件时,同步、异步和并发是非常重要的概念。Java和Django都是非常流行的编程语言和框架,这篇文章将解析这些概念在Java和Django中的使用方法和差异。 同步和异步 同步和异步是指任务之间的关系,它们是指程序执行的方式。在同...
      99+
      2023-09-10
      django 同步 并发
    • mybatis查询方式与效率高低源码对比分析
      这篇文章主要介绍“mybatis查询方式与效率高低源码对比分析”,在日常操作中,相信很多人在mybatis查询方式与效率高低源码对比分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mybatis查询方式与效...
      99+
      2023-07-05
    • Goroutine与Coroutine的对比分析:如何选择最佳并发模型?
      Goroutine与Coroutine的对比分析:如何选择最佳并发模型? 随着计算机技术的不断发展,多任务处理和并发编程成为了软件开发中的一个重要议题。在并发编程中,Goroutine...
      99+
      2024-03-12
      并发模型 go语言
    • Vue.js React与Angular流行前端框架优势源码对比分析
      这篇文章主要介绍“Vue.js React与Angular流行前端框架优势源码对比分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue.js React与Angular流行前...
      99+
      2023-07-05
    • 异步存储编程的秘密:Go和Apache的对比分析
      随着互联网的不断发展和数据量的快速增长,存储数据的需求也越来越大。而异步存储编程作为一种高效的存储数据的方式,受到了越来越多的关注。本文将对异步存储编程的两种实现方式——Go和Apache进行对比分析。 异步存储编程的基础概念 异步存...
      99+
      2023-09-19
      存储 异步编程 apache
    • JS中的async与await异步编程及await使用陷阱源码分析
      这篇“JS中的async与await异步编程及await使用陷阱源码分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“JS中...
      99+
      2023-07-05
    • Java并发编程之ConcurrentLinkedQueue源码的示例分析
      这篇文章给大家分享的是有关Java并发编程之ConcurrentLinkedQueue源码的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、ConcurrentLinkedQueue介绍并编程中,一般需...
      99+
      2023-06-15
    • MySQL与Oracle 差异比较之触发器的示例分析
      小编给大家分享一下MySQL与Oracle 差异比较之触发器的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!触发器编号类...
      99+
      2024-04-02
    • 二维码对象开发:Go语言和Apache的对比分析?
      二维码是一种常见的图像编码方式,它可以将大量的信息编码成一个小小的图像,方便在不同的场景中使用。在实际应用中,我们常常需要开发二维码对象,用于生成、解析和处理二维码。而在二维码对象的开发中,Go语言和Apache是两种常见的选择。本文将对G...
      99+
      2023-08-31
      二维码 apache 对象
    • Java并发编程之同步容器与并发容器的示例分析
      这篇文章主要为大家展示了“Java并发编程之同步容器与并发容器的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java并发编程之同步容器与并发容器的示例分析”这篇文章吧。一、同步容器&n...
      99+
      2023-06-15
    • 异步编程和文件处理的难点:Python 和 npm 对比分析
      异步编程和文件处理是现代编程中不可避免的两个难点,特别是对于Python和npm这两种流行的编程语言而言。本文将对这两种语言的异步编程和文件处理能力进行对比分析,并穿插演示代码来帮助读者更好地理解。 一、Python的异步编程和文件处理 P...
      99+
      2023-09-19
      文件 npm 异步编程
    • 异步协程开发指南:实现高并发的实时数据分析
      异步协程开发指南:实现高并发的实时数据分析,需要具体代码示例引言:随着互联网的高速发展,数据量呈现爆炸性增长,很多应用场景需要实时处理大规模数据。传统的同步编程方式往往难以应对这样的需求,而异步协程编程模型可以帮助我们利用并发性能,高效地处...
      99+
      2023-12-09
      异步 协程 高并发
    • 如何理解Java 容器中并发容器的源码分析
      这期内容当中小编将会给大家带来有关如何理解Java 容器中并发容器的源码分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。如果没有特别说明,以下源码分析基于 JDK 1.8。CopyOnWriteArra...
      99+
      2023-06-05
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作