Use VibeIO as runtime#64
Conversation
…duce executor overhead
…mproved performance
…O tasks and wake mechanisms
…ncy and improve performance
|
|
|
|
Not to get too off topic here but when it comes to tasks benchmarks I have an idea that may help you if your goal is to beat all the uvloop benchmarks and that is to create a new task object when no default factory is utilized. I have some concept work that you can borrow from if you wanted to do a bit more research later. https://gist.github.com/Vizonex/5196ae5fc7f2287df6a6dec8b37edc37 This has not been utilized at all yet but I see a reason to add this in after winloop is fully decommissioned and merged with uvloop. I don't know if coroutines will behave well with pyo3 but it's worth a shot. Edit: the concept of coroutines and tasks and futures was rather simple. Bridge all the code instead of just portions of it. The most python-heavy parts of uvloop currently are the containers and awaitable objects. If all of that was killed off the interpreter would have a less costly time performing asynchronous work. |
|
windows: |
…to prevent TCP failure timeout on Windows
|
|
|
… poll handling on Windows
|
|
Linux: |
|
macOS: |
This PR exists because currently rsloop has two runtimes: compio for macOS/Linux and vibeio for Windows.
I would like to simplify it and leave only vibeio because it has support for all platforms.
Also, this PR introduces enhancements optimizations in different parts.