套接字 recv() 一次一个字节

Socket recv() one byte at a time

使用套接字一次调用 recv() 一个字节是个好主意吗(就性能而言)?它会导致上下文切换吗?如果是这样,为什么会有上下文切换?

一次调用 recv() 一个字节会对性能产生负面影响。每次调用都有一定的开销——转换到内核模式、文件描述符查找、分派到协议特定的驱动程序、buffer/queue 锁定等。使用较大的缓冲区调用 recv() 会大大减少每字节的平均开销。

不,这绝对不是一个好主意。

调用读取函数比只读和写有很多开销
RAM 中的一个字节,您不想为每个字节都完成整个工作。