по всем вопросам @workakkk
@itchannels_telegram - 🔥 все ит каналы
@ai_machinelearning_big_data -ML
@ArtificialIntelligencedl -AI
@datascienceiot - 📚
@pythonlbooks
РКН: clck.ru/3FmxmM
Post #5603
4.41K


В Python пытаются принести настоящие goroutines.
Без
Под капотом там не магия, а довольно жёсткая инженерия: hand-written asm context switch, C work-stealing scheduler, netpoll, Go-style channels и
То есть
По бенчмаркам автора, Runloom уже близко к Go по scheduler throughput: около 2.29M spawn/s на C-entry, parity на conn/s и почти parity на keep-alive echo с Python handler.
Но важный нюанс: мультикорный выигрыш требует free-threaded CPython с выключенным GIL. На обычной GIL-сборке модель останется скорее удобной альтернативой asyncio, а не способом выжать все ядра.
Ещё честный минус - память. Пустой parked fiber весит больше Go-горутины примерно в 3.3 раза, потому что за ним тянется CPython eval frame.
https://github.com/robertsdotpm/runloom
runloom — экспериментальный runtime для free-threaded Python 3.13t+, где можно писать обычный блокирующий код, но запускать его как лёгкие fibers:
runloom.fiber(fn)
Без
async def, без await, без переписывания всего приложения под asyncio.Под капотом там не магия, а довольно жёсткая инженерия: hand-written asm context switch, C work-stealing scheduler, netpoll, Go-style channels и
monkey.patch(), который делает blocking stdlib cooperative.То есть
urlopen(), socket, time, threading могут выглядеть как обычный синхронный код, но runtime будет парковать fiber, а не весь OS thread.По бенчмаркам автора, Runloom уже близко к Go по scheduler throughput: около 2.29M spawn/s на C-entry, parity на conn/s и почти parity на keep-alive echo с Python handler.
Но важный нюанс: мультикорный выигрыш требует free-threaded CPython с выключенным GIL. На обычной GIL-сборке модель останется скорее удобной альтернативой asyncio, а не способом выжать все ядра.
Ещё честный минус - память. Пустой parked fiber весит больше Go-горутины примерно в 3.3 раза, потому что за ним тянется CPython eval frame.
pip install runloomhttps://github.com/robertsdotpm/runloom
- 🔥 13
- ❤ 4
- 👍 4
- 😁 2
















