繁体   English   中英

为什么TCPClient的ReceiveBufferSize的默认值为8192?

[英]Why is the default value of the TCPClient's ReceiveBufferSize is 8192?

根据MSDN文档 ,ReceiveBufferSize默认为8192。
我检查了一下,这不是使用缓冲区的2的幂的结果。
有特殊原因吗? 也许是由于TCP有一些额外的开销?

2的13的幂是8192。所以,是的,它是2的幂。

还要注意,它也是4096的倍数,这是最流行的虚拟内存页面大小。

传统上,操作系统中的内存管理器和页面文件在大小为2的幂的页面上工作。这允许使用左/右移位操作执行非常有效的乘/除操作。 使用缓冲区时,最坏的情况是缓冲区的大小比页面大小长1个字节(这将导致额外的页面交换,但收益非常低)。 因此,默认缓冲区大小也将倾向于以两倍为单位实现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM