Open
Description
1.13.0 improves send performance by batching, but the TCP backend still works on a single packet at a time. It's possible that this could be improved by using multiple packets, and either
- combining their buffer sequence into one big one and using a single write call (which might make error reporting a bit trickier since it could combine multiple heaps)
- using sendmmsg
- using
TCP_CORK
/MSG_MORE
- Let the writer pick the packet size if none is explicitly specified (and use a big default for TCP); doesn't help with small heaps though
- Use MSG_ZEROCOPY if the packets are big enough to justify it (or io_uring)
Some investigation is needed to determine whether any of these are beneficial.