Le 1/10/13 10:56 AM, Jeff MAURY a écrit :
> The performance gain is not related to the nature of the buffer; I mean
> writing to an HeapBuffer vs writing to a DirectBuffer but related to
> writing the buffer to the socket: if you write an HeapBuffer to a socket,
> my guess is that it will be copied to a DirectBuffer before it gets written
> to the socket which is not the case for a DirectBuffer

This is exactly what happens. Internally, for each call to the
channel.write(HeapBuffer), there is a call to DirectBuffer.pu(HeapBuffer).

You can imagine how costly this is when the HeapBuffer is 64 Mb big, and
we send only a fragment of it for each round... If the SendBufferSize is
64Kb, in this case, you will just copy the 64Mb 1000 times.

Good catch btw, Jeff !


-- 
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com 

Reply via email to