Which setup is more efficient? Flask with pypy, or Flask with gevent?

hasen picture hasen · Jan 12, 2013 · Viewed 14k times · Source

Both 'pypy' and 'gevent' are supposed to provide high performance. Pypy is supposedly faster than CPython, while gevent is based on co-routines and greenlets, which supposedly makes for a faster web server.

However, they're not compatible with each other.

I'm wondering which setup is more efficient (in terms of speed/performance):

  • The builtin Flask server running on pypy

or:

  • The gevent server, running on CPython

Answer

Jason Oster picture Jason Oster · Dec 5, 2013

The short answer is: It's faster with PyPy, and it has higher concurrency with gevent.

It is possible to use gevent and PyPy simultaneously (we do this at PubNub for multiple projects) although it can be tricky. Starting with PyPy 2.2, a few patches are required to gevent on their socket implementation. We have an experimental branch on github for it: https://github.com/pubnub/gevent/tree/pypy-hacks - To be used in conjunction with pypycore.

Our recommendation? Use Flask with PyPy and gevent. Get the best of both worlds!