推荐学习书目
› 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
V2EX  ›  Python

Pypy 上到底能不能跑 Django?

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

    按说上pypy的不太会用django吧,对性能苛求第一关就把django给毙了
    tabris17
    tabris17
    OP
    Nov 12, 2014
    2
    @jjx 那pypy上跑web framework一般用哪个?
    tini8
    tini8
    Nov 12, 2014
    3
    到底是什么项目能在语言上出现瓶颈?每当看到这种讨论的时候我都想像出一个日PV过亿的网站
    tabris17
    tabris17
    OP
    Nov 12, 2014
    4
    @tini8 后台大量科学运算类的
    tini8
    tini8
    Nov 12, 2014
    5
    @tabris17 那就把科学运算跟网站分开啊,百度搜索还是用php做的,后台运算用什么语言都行
    ratazzi
    ratazzi
    PRO
    Nov 12, 2014
    6
    兼容的,至少目前我们没遇到兼容问题,我们用 pypy 主要是后台运算,用 Django 是为了省事
    jjx
    jjx
    Nov 12, 2014
    7
    @tabris17 我现在在测试环境中运行一个真实的cpython27项目,基于bottle+gevent +sqlalchemy+postgrsql+pypy,实测性能会高80%以上
    tabris17
    tabris17
    OP
    Nov 12, 2014
    8
    @jjx bottle这个框架咋样?
    jjx
    jjx
    Nov 12, 2014
    9
    @tabris17 现在项目使用restful架构,webserver只是转发请求到中间服务器,用什么都无所谓, bottle够用了
    glasslion
    glasslion
    Nov 12, 2014
    10
    去年豆瓣洪教授在Pycon分享过 Django+Pypy的经验,最大的问题是纯Python的MySQL驱动
    cctvsmg
    cctvsmg
    Nov 12, 2014❤️2
    11
    可以用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
    tabris17
    OP
    Nov 12, 2014
    12
    @cctvsmg 这样一搞和用PHP做前端也没啥区别了
    wdlth
    wdlth
    Nov 12, 2014
    13
    后台大量计算的一般是分离的吧,像搜索引擎,Web只是负责展示页面内容。难道你要在Web代码中直接做计算?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1486 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 11:33 · PVG 19:33 · LAX 03:33 · JFK 06:33
    ♥ Do have faith in what you're doing.