Hi Trustin,
Many thanks - I had already tried playing with the message size -
obviously that does help a little.
I think the default on this particular machine is 8192 bytes (Windows XP).
Many thanks,
Richard.
--
Trustin Lee wrote:
On 4/20/07, Richard Lowe <[EMAIL PROTECTED]> wrote:
Hi Mike and everybody,
I am now doing this, but it doesn't seem to make much difference in
terms of the performance:
io.write(ByteBuffer.wrap(b))
I have run a profiler and it appears that around 48.4% of the time is
spent in ByteBuffer.allocate.
Could I store a small ByteBuffer in my session using setAttribute() and
then reuse that for every write? It would only be tiny.
I may be stabbing in the dark here, but wondering if that might help?
Your thoughts greatly appreciated as ever.
You might need to decrease the default receive/send buffer size. For
example:
SocketAcceptorConfig cfg = ...;
((SocketSessionConfig) cfg.getSessionConfig()).setReceiveBufferSize(512);
((SocketSessionConfig) cfg.getSessionConfig()).setSendBufferSize(512);
or
((SocketSessionConfig) acceptor.getDefaultSessionConfig()).setReceive....
or
((SocketSessionConfig) session.getConfig()).setReceive...
I found the default buffer size of some operating systems is too big
(e.g. 40k!). Decreasing them impacts performance quite a lot. (about
20%?)
Trustin