Background and Motivation
Current HTTP/2 receive window size is 64 Kb, which is too small for many scenarios. It leads to poor throughput, see e.g. #43086
Just increasing the default window size may result in unwanted memory consumption in some cases. It is proposed to enable users to configure flow control properties that so they can reach a compromise between memory consumption and throughput.
Proposed API
public sealed partial class SocketsHttpHandler
{
...
public bool EnableMultipleHttp2Connections { get; set; }
+ public int InitialHttp2ConnectionWindowSize { get; set; }
+ public int InitialHttp2StreamWindowSize { get; set; }
+ public int Http2StreamWindowUpdateRatio { get; set; }
}
Background and Motivation
Current HTTP/2 receive window size is 64 Kb, which is too small for many scenarios. It leads to poor throughput, see e.g. #43086
Just increasing the default window size may result in unwanted memory consumption in some cases. It is proposed to enable users to configure flow control properties that so they can reach a compromise between memory consumption and throughput.
Proposed API
public sealed partial class SocketsHttpHandler { ... public bool EnableMultipleHttp2Connections { get; set; } + public int InitialHttp2ConnectionWindowSize { get; set; } + public int InitialHttp2StreamWindowSize { get; set; } + public int Http2StreamWindowUpdateRatio { get; set; } }