mybatis-plus对datetime返回去掉.0_Django3.0 异步性能初探

django3.0起终于支持基于asgi的异步功能了。做为python及django的做后台服务的使用者不由关心,这个大版本到底能带来多少性能的提升。django3.0 官方提供daphne、uvicorn两种方式支持asgi,哪个性能更高?

测试环境:macOS + python3.7 +django3.0 本机:127.0.0.1(去掉网络因素)

压测试工具:locust

安装过程就不写了,网上和官网都有;django3.0的APP项目文档目录有稍许变化,多了asgi.py和wsgi.py两个模式文件,在view.py中写一个简单的response数据返回接口响应GET请求。

from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")

正确配置路由,确保服务正常,然后进入测试环节。

第一种:使用uwsgi

正确配置uwsgi.ini文件 启动命令:uwsgi --ini uwsgi.ini

使用locust进行200并发用户的压力测试3分钟

平均 RPS 约360

平均响应时间: 约510ms

90% precentile 430ms

失败率: 2%

cpu占用:68%(有时会跳到90%,抖动估计和失败的request有关)

第二种:使用daphne

启动命令:daphne myproject.asgi:application

使用locust进行200并发用户的压力测试3分钟

平均 RPS 约430

平均响应时间: 约280ms

90% precentile 570ms

失败率: 0%

cpu占用:70%

第三种:使用uvicorn

启动命令:uvicorn myproject.asgi:application

使用locust进行200并发用户的压力测试3分钟

平均 RPS 约510

平均响应时间: 约80ms

90% precentile 190ms

失败率: 0%

cpu占用:70%

以上测试不涉及数据库及文件IO操作,可能还不全面。但从http响应来看,uvicorn更有优势,安装体积也更小。

总的来说Django3.0的异步模式带来的性能提升是显而易见的,推荐用django做web服务的开发者接入。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值