目前正在使用套接字,我想知道减少对 send
的调用量以提高性能是否有意义。
据我了解,有一个发送缓冲区并且数据不会立即发送(?),但是我想知道内核在实际发送数据之前等待多长时间以及如果我多次调用 send 而不是一次?
最佳答案
对于 TCP,有一个由 Nagle algorithm 控制的发送缓冲区。 (以及它与来自接收器的 delayed acks 的交互)。
UDP 没有等效的延迟/缓冲机制。
您还没有说明您正在使用哪个协议(protocol),但如果是 TCP,您可能不需要执行任何操作。对于延迟敏感的代码,仍然值得缓冲写入以避免系统调用开销,但我想您已经知道这是否是您的情况。
关于c - 减少在套接字上发送的调用是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57449107/