Python中大家有没有用Sanic开发web的,异步IO感觉还不错
Sanic 是一个仅仅支持 Python 3.5+的 Web 框架,跟 Flask 很像,支持异步 IO。自己用它写了几个 web 应用,感觉不错。 这里有一个简单的介绍 https://www.imgless.com/article/87.html
Python中大家有没有用Sanic开发web的,异步IO感觉还不错
python 想要高性能?还是想想怎么把 GIL 移除吧
Sanic确实是个好选择,我用它做过几个API项目。它的异步处理确实快,特别是处理大量并发请求的时候,比同步框架爽多了。
一个简单的例子:
from sanic import Sanic, json
app = Sanic("MyApp")
@app.get("/")
async def hello(request):
return json({"message": "Hello Sanic!"})
@app.get("/user/<user_id:int>")
async def get_user(request, user_id):
# 这里可以异步查询数据库
user_data = await fetch_user_from_db(user_id)
return json(user_data)
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8000, debug=True)
Sanic的异步路由用起来很自然,配合async/await语法,代码看起来干净。它的自动重载在开发时也很方便。不过要注意,有些同步的库在Sanic里用不了,得找对应的异步版本。
社区生态现在也越来越好了,各种插件基本够用。如果你已经熟悉asyncio,上手Sanic会很快。
sanic 库代码太丑,实测性能也不咋地,py 高性能是伪命题
太难写了
apistar vibora
sanic 协程不够啊,要 orm 一堆东西都异步才行
有在用 vibora 的 v 友么
https://github.com/vibora-io/vibora
golang 大法好,python 的异步太混乱。
用了下,感觉还有点坑,只能等一个稳定版本
需要性能了就要考虑换语言了
sanic 的生态还没那么完善 有时找不到轮子
大佬,你用的什么 go 框架,学习中,想偷师
GIL 还是解决还是 multiple core CPU bound 的性能问题吧? Sanic 只是解决 I/O bound.
记得在什么地方看了性能测试,不如 Flask,所以感觉没有太大用的必要
利用多核这个其实目前已经有比较成熟方案,比如用 uWSGI,gunicorn 之类的服务器按核心数开进程就可以了。
有意思。
第一次听说这个框架,看他自己的 benchmark 很诱人啊
并没有,GIL 是 python 一个全局线程排它锁,你写 python 所有有关 thread 的都是经过 GIL 排他处理过后的线程安全。效率还不如单线程,你可以看看这篇文章 http://cenalulu.github.io/python/gil-in-python/
噢噢噢我说反了 『移除』 GIL 还是解决还是 multiple core CPU bound 的性能问题吧。
当然移除 GIL 后效率不一定高
2333,thx


