sanic性能对比

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sanic性能对比相关的知识,希望对你有一定的参考价值。

参考技术A Sanic是基于uvloop的异步web框架,其性能个人觉得比Py三大框架强。

python3.6.8
tornado==6.0.2
sanic==19.3.1
cpu Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz
测试语句:

wrk -t10 -d1m -c200 http://127.0.0.1:8080
结果

每秒请求70

这里测试一个进程也就是一个cpu的,测试结果

sanic每秒请求大概1.9w

tornado并没有返回json了,直接测试性能,测试结果:

每秒请求3k

这里限制核心数为1核,和sanic平级。结果如下

每秒4.5w,其实如果sanic改为多进程,go也改为没有cpu限制,他们之间还是会相差2倍。

每秒3.4w左右,由于node.js使用的也是libuv,但是python本身语言还是慢了。或者说,Sanic是一个框架,逻辑也比go的http和node的http模块逻辑要复杂的多,执行时间自然足药更多的时间。

sanic是使用的uvloop作为asyncio的loop实现,uvloop本身非常快,他是Cython写的。如果使用c语言写的http解析器,那么它实现的http的性能和node.js持平, 和go也有的拼。
https://magic.io/blog/uvloop-blazing-fast-python-networking/

是否可以将业务逻辑之外的,用C实现,再Python语言绑定,如上图,http解析器使用httptools实现,达到最大化利用计算机性能?

虽然python的执行速度没那么快,但是均衡开发速度,选择Python,你会有更多的时间做其它事情。

-----------------<如文章有不正确的地方或者你有什么建议,欢迎在下方评论>-----------------

sanic 相关的资源


【资源】

awaesome-sanic

​https://github.com/mekicha/awesome-sanic​

redis客户端

pg

​https://github.com/MagicStack/asyncpg​

RabbitMq

​https://aio-pika.readthedocs.io/en/latest/​


以上是关于sanic性能对比的主要内容,如果未能解决你的问题,请参考以下文章

Sanic、Fastapi 和 Fiber 简单压测对比

JS中循环性能对比

for、forEach、map的性能对比

SanicFastapi 和 Fiber 简单压测对比

2017年的golangpythonphpc++cjavaNodejs性能对比[续]

Linq和Lambda 性能对比