永发信息网

如何用 gevent 提高 Django 的性能

答案:1  悬赏:0  手机版
解决时间 2021-11-17 20:30
如何用 gevent 提高 Django 的性能
最佳答案
一种技术的出现必然是为了解决某种问题,gevent是为了解决什么问题呢,设想下面这种情况。
你要做一个千人在线的Web聊天室,聊天室需要能够实时来收发消息,但是HTTP是无状态的,就是说服务器没有直接把消息发给浏览器的能力。你往服务器发送数据之后,服务器没法直接把你的消息推送给其他聊天室的人,但有若干方案可以解决这个问题。
这里假设我们采用常见的长轮询的方案,即客户端请求服务端获取最新的消息,服务器有消息就返回数据,否则将一直保持连接,直到超时。这时候,如果千人在线的话,就需要保持1000个连接,如果连接是进程模式或者线程模式,那就要开对应个数的进程或者线程,1000个进程或者线程的切换开销会消耗太多的资源。
你仔细分析这个聊天室的代码执行情况,会发现这么多的进程或者线程大部分时间都是闲的,它们在等浏览器发消息,啥事都没干。
针对这个问题,你可以想到,要一个进程在闲的时候去干其他的事情,等这边消息到了再回来处理就好了。gevent把这个功能实现了,切换开销大大降低,系统性能飙升。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
黄金手撕面包表面椰蓉酱料是怎么配比的
美容院每月营业额30万以上交定额税好还是核账
4x50+1x25平方电缆一米多少铜
为什么电脑响应不过来?
st保千里打开跌停能买吗
有首歌的歌词有段叫 who 来客 讲讲 whowho 求
这是什么珠子编的
soorunkor和 sooryehan有什么区别吗?两个都
....信阳三高好吗?
手机QQ2010上不了Q?怎么回事?
海尔发票查询王兴家
家里的宝贝有远视,600度,有带眼镜,这样可
工商申报纳税怎么写
王智成有宋冬野红吗?
CArray定义出错!!!!!!!!!
推荐资讯
为什么抱不动100斤的水泥,却能抱动112斤的人
梦见桌上摆了很多碗菜
红色警戒2心灵终结3.3版本更新了什么 红警2心
陕师大新校区在韦曲坐几路公交车可以到?
菠萝花围巾应排多少针
跪求p图大神帮我把这个手持的身份证p清楚一点
美国k1签证拿到一个小蓝单子是什么意思?收了
八年级数学计算-2的99次加上-2的100次结果为
请问sqlserver2000怎么实现递归查询,详细是
重庆琴海琴行(潼南艺之韵分校)地址好找么,我
雕刻时光咖啡馆地址在哪,我要去那里办事,
苹果6s打电话怎么录音录音在哪找
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?