Just a thought: How about wrapping the NIO ByteBuffer references in the
pool in SoftReferences to allow the GC the reclaim the memory when
needed? Would that be an option?

/Niklas

Fedechicco wrote:
> I modded an old 0.8 mina ByteBuffer for a previous app, and in my changes I
> track the fewest quantity of byteBuffer in each stack of the pool between
> two different times.
> In this way I register all over 15minutes the minimum of each stack, and
> then at the end of my 15minutes I pop out the byteBuffer unused in that
> quarter of hour. (In my  case it was a good change, but you can see that it
> was very home-made)
> 
> Specifing a max size for the pool is not an easy task because the non-sent
> data have to be put somewhere, and limit the memory for the pool means to
> limit that somewhere. I think that the way of limit the pool size must be
> developed within the overload-prevention part of MINA, because if there is
> no more memory we can only stop the producer of the data ( I mean the
> SocketIO processor and the IoHandlers ).
> Because of this I would not impose a higher limit to the pool, but I would
> provide methods to minimize it.
> 
> The very last chance to reduce memory usage and buffer allocation time is to
> slice big buffers into many little buffers.
> The management of a similar pool cannot be a trivial thing, but there are
> many nice aspect of a similar method.
> In this way we can give gc the smallest buffers, when we have to limit the
> memory usage, because we can pretend to have them also if we have only
> biggest ones.
> Another little nice thing is that we can spend (often) less cpu time in
> expanding a buffer: by now in expanding a bytebuffer we have to call from
> the pool another buffer and copy all the data, instead with this method we
> can choose if to simply enlarge the slice, or to phisically copy in another
> buffer all the bytes.
> 
> But I think that the mina memory management is already very very good, and
> that it don't need this radical changes.
> 
> by Fed
> 


-- 
Med vänlig hälsning

Niklas Therning
Software Architect

[EMAIL PROTECTED]
Mobil: +46 739 75 05 73

Trillian - Software Design at its best
www.trillian.se

Reply via email to