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