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性能对比的主要内容,如果未能解决你的问题,请参考以下文章