-
Notifications
You must be signed in to change notification settings - Fork 550
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update performance plot #566
Comments
@andersfylling For reference, since the plot in the readme hasn't been updated (yet), could you post the performance numbers that you got? |
if needed we should be using hypercorn[uvloop] at this point. uvicorn is not used afaik so not sure it should be a dev dependency. (I’m actually not even sure if our current configuration uses uvloop at all?) uvloop seems to have some issues of its own (not present in asyncio) and the performance claim might not be real at this point in time: MagicStack/uvloop#566
if needed we should be using hypercorn[uvloop] at this point. uvicorn is not used afaik so not sure it should be a dev dependency. (I’m actually not even sure if our current configuration uses uvloop at all?) uvloop seems to have some issues of its own (not present in asyncio) and the performance claim might not be real at this point in time: MagicStack/uvloop#566
I had the same question when I looked at the figure, especially since it was made with Python 3.5, when I tried to update the benchmarking codebase to use the latest Python version (3.13) and My setup is AMD Ryzen 7 4800H, 64 GB RAM, Ubuntu 24.04.01, Linux 6.8.0-47. The benchmark Docker container in my updated version is I used the default benchmark parameters and got these results:
I really think that the figure should be updated from the maintainers to a more honest value. A thing to note is that I am not an asyncio expert. There is a possibility that my modernizations to the benchmark broke something. @fantix I would really like to hear your thoughts about this. Let me know if I can assist the project in any way. I have been a user of |
Hi! We had to get rid of We also run synthetic benchmarks which showed basically zero difference. Finally in production (which processes over 10K RPS) it neither showed any difference when switching to vanilla I opened a small README to update the performance claims of the repo so they are less misleading: #644 |
I'm curious, in your scenario, are you still using httptools, or have you also switched to h11? |
Still using httptools |
A few months ago I made a few PRs for uvloop that significantly boost uvloop performance, both plain and and ssl cases. Still waiting for someone to take a look at them. I made performance measurements in the context of my project The difference between uvloop and asyncio is currently marginal, but my PRs will definitely change that. |
Will your PR make asyncio just as fast? |
This one can indeed be ported to asyncio Others are about Cython and using C api |
Do you have benchmark numbers for that, or is it a gut feeling? |
I do benchmark for my websockets library. boost.beast client result is also included for reference Python 3.12.5 uvloop 0.21.0 unmodified uvloop 0.21.0 with 4 PRs merged According to this benchmark, my PRs improve aiohttp/picows ssl websocket performance by roughly 18%-20% (aiohttp 15219/12844, picows 20272/16911) . |
Thanks for running the benchmarks. I'll dedicate some time to uvloop in about a week to look through the open PRs and potentially updating the README. |
@tarasko would you be interested in submitting these benchmarks to the faster cpython project? Eg python/pyperformance#227 |
Hello! I find these coroutine projects very interesting, but I'm having some issues replicating the performance. I noticed that the graph used on the readme file is around 7 years old. Is it perhaps time to update it? =)
An idea would be to update it on major python releases.
The text was updated successfully, but these errors were encountered: