25

“pypy”和“gevent”都应该提供高性能。Pypy 据说比 CPython 快,而 gevent 基于 co-routines 和 greenlets,据说这可以使 Web 服务器更快。

但是,它们彼此不兼容。

我想知道哪种设置更有效(就速度/性能而言):

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

或者:

  • gevent 服务器,在 CPython 上运行
4

3 回答 3

19

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

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

我们的建议?将 Flask 与 PyPygevent 一起使用。两全其美!

于 2013-12-05T03:12:20.587 回答
5

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

于 2017-08-27T17:45:42.610 回答
1

内置烧瓶服务器是一个 BaseHTTPServer 左右,从不使用。最好的情况很可能是 tornado + pypy 或类似的东西。使用前进行基准测试。这也很大程度上取决于你在做什么。Web 服务器 + Web 框架基准测试通常是 hello world 类型的基准测试。你的应用真的是这样吗?

干杯,菲亚尔

于 2013-01-12T15:36:38.347 回答