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

Socket recv() one byte at a time

本文关键字:一个 字节 recv 套接字      更新时间:2023-10-16

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

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

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

与只读取和写入相比,调用read函数有很多开销
RAM中的一个字节,您不想为每个字节做全部工作。