Pypy 上到底能不能跑 Django?

2014-11-12 09:22:49 +08:00
 tabris17
有说兼容性有问题的,也有说性能没有明显提升的,到底行不行,有人生产环境里用pypy跑过django么?
6704 次点击
所在节点    Python
13 条回复
jjx
2014-11-12 09:30:36 +08:00
pypy要预热,需要先跑上万次请求

按说上pypy的不太会用django吧,对性能苛求第一关就把django给毙了
tabris17
2014-11-12 09:32:33 +08:00
@jjx 那pypy上跑web framework一般用哪个?
tini8
2014-11-12 09:34:34 +08:00
到底是什么项目能在语言上出现瓶颈?每当看到这种讨论的时候我都想像出一个日PV过亿的网站
tabris17
2014-11-12 09:35:41 +08:00
@tini8 后台大量科学运算类的
tini8
2014-11-12 09:39:36 +08:00
@tabris17 那就把科学运算跟网站分开啊,百度搜索还是用php做的,后台运算用什么语言都行
ratazzi
2014-11-12 10:24:30 +08:00
兼容的,至少目前我们没遇到兼容问题,我们用 pypy 主要是后台运算,用 Django 是为了省事
jjx
2014-11-12 10:26:59 +08:00
@tabris17 我现在在测试环境中运行一个真实的cpython27项目,基于bottle+gevent +sqlalchemy+postgrsql+pypy,实测性能会高80%以上
tabris17
2014-11-12 10:49:27 +08:00
@jjx bottle这个框架咋样?
jjx
2014-11-12 11:15:17 +08:00
@tabris17 现在项目使用restful架构,webserver只是转发请求到中间服务器,用什么都无所谓, bottle够用了
glasslion
2014-11-12 12:01:53 +08:00
去年豆瓣洪教授在Pycon分享过 Django+Pypy的经验,最大的问题是纯Python的MySQL驱动
cctvsmg
2014-11-12 12:29:39 +08:00
可以用python27 + flask + gevent + pony orm + ultramysql实现前台,ultramysql是纯c++驱动 https://github.com/esnme/ultramysql, 这个框架兼顾开发效率和运行效率,我个人测试的这个在双核2.2ghz cpu上每个CPU 700rps, 每个请求才几毫秒 。

涉及到大量计算的的地方写扩展或者用pypy,这样做其实是很合理的,你要考虑到无论是pypy还是python都是只能在单核运行,多核情况下用gunicorn或者supervisor必然要启动多个进程,多个pypy如果再加载大量的库,最后内存可能会紧张,所以不如多个python web小进程+一个pypy后台进程。

当然,现在gevent也已经支持pypy, pypy + flask + gevent + pony orm运行也没问题, mysql驱动可以用纯python实现的驱动pymsql,这个也是pony orm原生支持的。

总之在实际进入瓶颈之前,不要先考虑性能问题......
tabris17
2014-11-12 12:41:27 +08:00
@cctvsmg 这样一搞和用PHP做前端也没啥区别了
wdlth
2014-11-12 12:47:55 +08:00
后台大量计算的一般是分离的吧,像搜索引擎,Web只是负责展示页面内容。难道你要在Web代码中直接做计算?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/145802

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX