在Windows中,可以说我正在使用recv函数从套接字接收数据。
我很好奇一个最佳缓冲区有多大?我可以将其设置为1024字节,也可以将其设置为51200字节或更大。我想知道哪种会更好。

这不仅适用于recv函数,可以说我正在读取一个较大的文本文件,我想要很大的缓冲区还是较小的缓冲区?

最佳答案

操作系统执行自己的缓冲,因此缓冲区的大小并不重要。性能损失在于函数调用:1字节的缓冲区效率低下,因为它将需要对recv()的过多调用。太大的缓冲区只会浪费空间。

最佳大小大约是您希望接收或能够在单个recv()调用中处理的数据大小的两倍,下限大约为1或2 tcp帧。

我个人使用4KB缓冲区,但这是我自己的偏好,它在很大程度上取决于我正在编写的应用程序。

10-06 06:58
查看更多