在.NET Core中,当在HttpContext.Request.Body
和HttpContext.Response.Body
中使用流时,我们应该首先将它们包装在BufferedStream
中吗?
很显然,如果它们已经在缓存自己,那么我们应该避免双重缓冲。但是,如果不这样做,就会带来发送许多微小TCP数据包的风险。据报道,性能差异为500倍:
https://github.com/dotnet/corefx/issues/1793#issuecomment-151584410 https://stackoverflow.com/a/1950692/543814
那么,请求和响应流是否在.NET Core中实现了自己的缓冲?
此外,在接收方(HttpContext.Request.Body
)缓冲是否有意义?还是完全由发送方控制?我想象接收方必须总是有一个缓冲区,所以必须已经有一个缓冲区,否则分组拆分将由发送方控制。