哪种设置更有效?带有pypy的烧瓶,或带有gevent的烧瓶?

时间:2013-01-12 15:10:34

标签: python performance gevent pypy

'pypy'和'gevent'都应该提供高性能。据说Pypy比CPython更快,而gevent则基于协同例程和greenlets,据说可以提供更快的Web服务器。

但是,它们彼此不兼容。

我想知道哪种设置更有效(在速度/性能方面):

  • 在pypy上运行的内置Flask服务器

或:

  • 在CPython上运行的gevent服务器

3 个答案:

答案 0 :(得分:14)

简短的回答是:使用PyPy 更快,并且它与gevent具有更高的并发性

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

我们的建议?将Flask与PyPy gevent一起使用。充分利用这两个世界!

答案 1 :(得分:2)

内置烧瓶服务器是BaseHTTPServer左右,永远不会使用。最好的情况很可能是龙卷风+ pypy或类似的东西。使用之前的基准测试。它还非常依赖于你正在做的事情。 Web服务器+ Web框架基准测试通常是hello world的基准测试。你的申请真的那样吗?

干杯,fijal

答案 2 :(得分:2)

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