| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Sanic异步框架真的这么强吗?实践中找真理 -> 正文阅读 |
|
[Python知识库]Sanic异步框架真的这么强吗?实践中找真理 |
Sanic异步框架真的这么强吗?实践中找真理,通过对Sanic、Flask、Spring三个框架进行压力测试得出答案!目录前言随着人工智能项目的逐渐普及,人工智能项目目前主流的开发语言仍然是python,所以使用python作为算法对外的api需求逐渐增大。那么问题来了,目前主流的python web框架主要是flask、django、fastapi等,但受限与python是一门解析语言,其运行效率整体来说并不高(同时受困于全局解释器锁GIL,无法像java的框架一样做到真正的多线程),所以异步框架的需求应声而出,那么我将通过以下测试,对比flask、sanic以及java的spring,进行一个简单的api接口测试,生成该对比文档。 一、Sanic是什么?Sanic 是一个基于 Python 3.5+ 的 web 框架,依托于 uvloop、asyncio 等事件循环和异步并发模块,旨在提供支持异步高并发请求的 web 服务。 ② Sanic 的使用和 Flask 非常相似 二、压测工具abab是Apache自带的压力测试工具。ab非常实用,它不仅可以对Apache服务器进行网站访问压力测试,也可以对其它类型的服务器进行压力测试。比如Nginx、Tomcat、IIS等。
三、测试步骤1.代码实例:sanic:
flask:
java:
? 2.测试过程ab工具
测试命令如下,共20000次请求,并发为1000:
测试结果:
? 3.Sanic:是时候表演真正的技术了看了一下上面的测试结果,会不会发现,怎么好像Sanic也没有想象中,传说中那么强,Flask只需要通过使用gunicorn作为wsgi服务器,一样可以弥补使用原生web服务的缺点。可以充分发挥服务器的性能。 经过查阅资料发现,其实是我们配置方面没有填好。首先Sanic 自带了一个 Web 服务器。在大多数情况下,推荐使用该服务器来部署Sanic 应用,然后只需要通过修改一下app.run()里面的一些参数即可提升Sanic的性能了。 Sanic提升性能小秘诀
ab测试信息:
最终测试结果:
总结通过上面的亲测,Sanic的确在性能方面,确实是不错的选择。虽然说这次测试只是单纯的一个get请求,并没有涉及到一些内部的异步任务等等(毕竟今天要测试的是框架本身,而不是从借助外部工具的角度来说,毕竟工具,你我他,都能用的。) 性能上能够跟java的框架不分伯仲,甚至是稍微领先一丢丢,也是让人觉得惊喜的。况且,Sanic可是用自己内部的web服务器,并没有通过gunicorn等。 不过Sanic的生态,还是得继续加油,在https://python.libhunt.com/,甚至连具体信息都不全,就很离谱。。 不过庆幸的是,Sanic的官网(我下面插了链接,百度搜索不了的)做的挺不错的,有很具体的案例讲解,最最最重要,有官方中文文档选择,终于不需要网页翻译了。 以上就是这次测试的全部内容,有不足的请多多指教。其实无论是语言也好,框架也好,肯定也是咸鱼白菜,各有所爱,保持热情,做喜欢做的事情,同时能做好它,足矣 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 14:28:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |