Details
-
Improvement
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
Description
Currently HeapDataOutputStream.sendTo(SocketChannel, ByteBuffer) will call Channel.write for each direct ByteBuffer in the HeapDataOutputStream (which can be multiple if doNotCopy=true). And it will call combine consecutive heap ByteBuffers into a write call.
It would be much better if it called Channel.write once with an array of ByteBuffers resulting in one system call the way HeapDataOutputStream.sendTo(SocketChannel) does.