Pypy 上到底能不能跑 Django? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
tabris17

Pypy 上到底能不能跑 Django?

  •  
  •   tabris17 Nov 12, 2014 7266 views
    This topic created in 4184 days ago, the information mentioned may be changd or developed.
    有说兼容性有问题的,也有说性能没有明显提升的,到底行不行,有人生产环境里用pypy跑过django么?
    13 replies    2014-11-12 12:47:55 +08:00
    jjx
        1
    jjx  
       Nov 12, 2014
    pypy要预热,需要先跑上万次请求

    按说上pypy的不太会用django吧,对性能苛求第一关就把django给毙了
    tabris17
        2
    tabris17  
    OP
       Nov 12, 2014
    @jjx 那pypy上跑web framework一般用哪个?
    tini8
        3
    tini8  
       Nov 12, 2014
    到底是什么项目能在语言上出现瓶颈?每当看到这种讨论的时候我都想像出一个日PV过亿的网站
    tabris17
        4
    tabris17  
    OP
       Nov 12, 2014
    @tini8 后台大量科学运算类的
    tini8
        5
    tini8  
       Nov 12, 2014
    @tabris17 那就把科学运算跟网站分开啊,百度搜索还是用php做的,后台运算用什么语言都行
    ratazzi
        6
    ratazzi  
       Nov 12, 2014
    兼容的,至少目前我们没遇到兼容问题,我们用 pypy 主要是后台运算,用 Django 是为了省事
    jjx
        7
    jjx  
       Nov 12, 2014
    @tabris17 我现在在测试环境中运行一个真实的cpython27项目,基于bottle+gevent +sqlalchemy+postgrsql+pypy,实测性能会高80%以上
    tabris17
        8
    tabris17  
    OP
       Nov 12, 2014
    @jjx bottle这个框架咋样?
    jjx
        9
    jjx  
       Nov 12, 2014
    @tabris17 现在项目使用restful架构,webserver只是转发请求到中间服务器,用什么都无所谓, bottle够用了
    glasslion
        10
    glasslion  
       Nov 12, 2014
    去年豆瓣洪教授在Pycon分享过 Django+Pypy的经验,最大的问题是纯Python的MySQL驱动
    cctvsmg
        11
    cctvsmg  
       Nov 12, 2014   2
    可以用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
        12
    tabris17  
    OP
       Nov 12, 2014
    @cctvsmg 这样一搞和用PHP做前端也没啥区别了
    wdlth
        13
    wdlth  
       Nov 12, 2014
    后台大量计算的一般是分离的吧,像搜索引擎,Web只是负责展示页面内容。难道你要在Web代码中直接做计算?
    About     Help     Advertise     Blog     API     FAQ     Solana     1500 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 17:01 PVG 01:01 LAX 10:01 JFK 13:01
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86