This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Liran Nuna
Recipients Liran Nuna, serhiy.storchaka, yselivanov
Date 2017-12-05.04:26:30
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1512447991.21.0.213398074469.issue32204@psf.upfronthosting.co.za>
In-reply-to
Content
> Also I suggest you to try uvloop

Sadly, uvloop does not offer any noticeable improvement in performance for us. Our usage is very similar to the "benchmarks" I posted - we don't do any actual async I/O because asynq does not offer that. 

> I suggest you to profile it and post real profiles here

Gladly! Would you like profiles of python within itself (as in, made with `cProfile`) or gmon.out profiles? the latter would be a little more difficult to run since we run a web server which needs to accept traffic, but I do have plenty of `cProfile` profiles I could share with you.

> I just don't think that asyncio.gather can be the main bottleneck you have, it must be something else

I think my PR and the examples I have provided set a different mindset to this issue - the issue in question is that the "sync" performance of async/await is very poor when used to execute things in "sync". The benchmarks provided are an example of what a request life time looks like - there's a lot of scatter-gather to batch database queries that happen in sync (for the time being) which in the benchmark being simulated as simple math operations. To reiterate, I do not think `asyncio.gather` is the main performance bottleneck. I do not know how to better identify it with my limited knowledge about cpython.
History
Date User Action Args
2017-12-05 04:26:31Liran Nunasetrecipients: + Liran Nuna, serhiy.storchaka, yselivanov
2017-12-05 04:26:31Liran Nunasetmessageid: <1512447991.21.0.213398074469.issue32204@psf.upfronthosting.co.za>
2017-12-05 04:26:31Liran Nunalinkissue32204 messages
2017-12-05 04:26:30Liran Nunacreate