Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> my experiments show that the runtime cost of most coroutine‑like abstractions is simply too high

Which runtime cost do you mean?

The main one I am aware of is a heap allocation per coroutine, though this can in some cases be elided if the coroutine is being called from another coroutine.

The other cost I am aware of is the initializing of the coroutine handle, but I think this is just a couple of pointers.

In both cases I would expect these overheads to be relatively modest compared to the cost of the I/O itself, though it's definitely better to elide the heap allocation when possible.

I don't know much about coroutine libraries like unifex (which I think your test is using), but a hand-coded prototype I was playing with doesn't seem to add much overhead: https://godbolt.org/z/8Kc1oKf15

If we can compile with -fno-exceptions, the code is even tighter: https://godbolt.org/z/5Yo8Pqvd5

My exploration into coroutines and I/O is only in the earliest stages, so I won't claim any of this to be definitive. But I am very interested in this question of whether the overhead is low enough to be a good match for io_uring or not.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: