-
Notifications
You must be signed in to change notification settings - Fork 8
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
Conditionally use more efficient strategies for polling file I/O #24
Comments
Is IOCP an option for files on Windows? I have a use case for doing 32k reads of 32 bytes and need to do it fast. On Windows with blocking I/O on a thread pool it is not fast at all comparing to Linux. I might also be able to get a grant for this work if it is something of interest. |
I would very much appreciate this being worked on, as I don't have time for this at the moment. IOCP is an option for reading and writing files, along with some other operations that unfortunately don't include opening files. It may be faster than reading files using thread-based operations in some cases. Here is a checklist of things that would need to happen in order for this to work:
|
@nazar-pc Any updates? |
I have done experiments with other async I/O libraries (glommio, monoio) and found out that even if it is faster for reads, I have reads interleaved with compute and having thread pool is faster. To fix Windows performance issues file had to be opened multiple times, once in each thread of the thread pool rather than once and shared with all threads by reference. So not really a priority anymore for the use case I had. |
For Windows there is file completion (for some operations, we'd have to fall back to
blocking
for others), for Linux there isio_uring
and for BSD there isaio
. It would be nice to use one of these strategies instead of the inefficientblocking
code if they are available.The text was updated successfully, but these errors were encountered: