-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[QUIC] Read can be highly inefficient #56891
Comments
Tagging subscribers to this area: @dotnet/ncl Issue DetailsI bump to this while looking at #56115 Consider the It feels like there is no point of informing MsQuic that we process something unless it is at least QuicBuffer.Length worth off data. There is no way IMHO it can return half of the buffer to the the OS. This probably needs deeper look.
|
This seems a bit complex because the QuicBuffer could be really large, right? Say it's 64K, we consume 32K of it... it might be worth it to inform msquic that we consumed 32K so it can inform the peer and receive more data. |
I'm wondering if we can get more than UDP packet ... or perhaps few. And if few, would that be split to multiple buffers to avoid allocations. Anyway, this looks like something to look into in future. |
Triage: Would show up when user reads smaller chunks of data (due to their protocol). |
Fixed in #71969 |
I bump to this while looking at #56115
Consider the
BigWrite_SmallRead_Success
. We can receive 100b in single contiguous chunk and yet we would do 99 p/invokes to MsQuic and then receive 99 additional events viaHandleEventRecv
.It feels like there is no point of informing MsQuic that we process something unless it is at least QuicBuffer.Length worth off data. There is no way IMHO it can return half of the buffer to the the OS.
Now, there is aspect that MsQuic can inform peer that some data were consumed but that only increases the inefficiency by sending extra data.
This probably needs deeper look.
The text was updated successfully, but these errors were encountered: