2013-01-12 149 views
17

'pypy'和'gevent'都应该提供高性能。据推测,Pypy比CPython快,而gevent基于co-routines和greenlet,据推测这可以用于更快的Web服务器。哪种设置更高效?烧瓶与pypy,或瓶与gevent?

但是,它们彼此不兼容。

我想知道其设置是更有效的(在速度/性能方面):对pypy运行

  • 内建瓶服务器:

    • 的gevent server,在CPython上运行
+2

如何评估与您相关的任务的基准?我认为这不可能是建设性的。 – delnan

+0

这是一个具体的问题,有3个可能的答案:1.烧瓶 - 派尼明显更快2.烧瓶 - 派克明显更快3.他们接近和/或很难说没有基准。 – hasen

回答

2

个内置烧瓶服务器是BaseHTTPServer左右,从不使用。最好的情况很可能是龙卷风+ pypy或类似的东西。基准之前使用,但。它也很大程度上取决于你在做什么。 Web服务器+ Web框架基准测试通常是世界各地的基准测试。你的应用真的是这样吗?

干杯,fijal

+5

谁曾经关闭过这个问题,这样做是不正确的!我刚刚读到''PyPy'比'CPython'快了10倍,另一方面我*用'gevent'运行一个Flask应用程序。因此,我看到并偶然发现了这个**非常有趣的问题..但显然有些人喜欢将一些问题标记为*破坏性的* ..如果某个外面的人在* *中都有经验,那实际上会很好。那么为什么有必要停止分享这些经验? .. – hsk81

13

简短的回答是:这是一个与PyPy 更快,具有更高的并发与GEVENT。

可以同时使用gevent和PyPy(我们在PubNub上为多个项目执行此操作),虽然它可能非常棘手。从PyPy 2.2开始,需要一些补丁来实现它们的套接字实现。我们在github上有一个实验分支:https://github.com/pubnub/gevent/tree/pypy-hacks - 与pypycore联合使用。

我们的建议?使用PyPy gevent。获得两全其美!

+0

看看[这里](https://github.com/gevent/gevent/issues/248)。 Gevent现在支持pypy。 –

+0

@ kawing-chiu是的。 PyPy支持在当前的gevent 1.1 beta版本中可用。仍然建议谨慎行事。贝塔斯仍在接受错误修复。请留意提交日志,以查看自上次测试版发布以来是否有可能会影响您的应用程序的任何更改。 –

0

Pypy与Gevent +1.1兼容(http://www.gevent.org/changelog.html)。它也与Python 3兼容。那么,为什么不使用两者呢? Pypy将提高处理性能,而Gevent将通过使用地下异步连接帮助IO界限任务(例如数据库查询,Web请求)。