On 18 November 2016 at 23:09, Yury Selivanov <yselivanov@gmail.com> wrote:
Also, are you using uvloop or vanilla asyncio?  Try to benchmark vanilla first.  And if you have time, please try to test different combinations on vanilla asyncio:

Python 3.5 + vanilla asyncio
Python 3.6 + vanilla asyncio
Python 3.6 + Py Future + Py Task
Python 3.6 + Py Future + C Task
Python 3.6 + C Future + C Task
Python 3.6 + Py Future + Py Task

These are results of an asyncio-based benchmark - no sockets involved - highly nested coroutines
The --io uv flag indicates a run with uvloop.

py35 setup.py bench -a coroutine
TestCoroutine.test_coroutine: repeated 10(x1000) times, average 0.50100 secs, stdev 1.13 %

py35 setup.py bench -a coroutine --io uv
TestCoroutine.test_coroutine: repeated 10(x1000) times, average 0.08246 secs, stdev 3.87 %

py36 setup.py bench -a coroutine
TestCoroutine.test_coroutine: repeated 10(x1000) times, average 0.26563 secs, stdev 2.35 %

py36 setup.py bench -a coroutine --io uv
TestCoroutine.test_coroutine: repeated 10(x1000) times, average 0.06762 secs, stdev 5.43 %

I'll benchmark with sockets next