Marcel Meulemans created PROTON-597:
---------------------------------------
Summary: Improve the memory footprint of TrasportImpl
Key: PROTON-597
URL: https://issues.apache.org/jira/browse/PROTON-597
Project: Qpid Proton
Issue Type: Improvement
Components: proton-j
Affects Versions: 0.7
Reporter: Marcel Meulemans
Priority: Minor
The memory footprint of the TrasportImpl can be quite high when using large
maxFrameSizes (for example 1MB). In the TrasportImpl of proton-j there are two
classes TrasportOutputAdaptor and FrameParser (TrasportImpl has a member of
both) that hold a ByteBuffer of maxFrameSize throughout their lifetime. In the
case of the 1MB frame size that means that each transport has a fairly high
memory footprint (2MB) considering that this memory is hardly ever used, i.e.
only when there is a frame to transfer in/out and in most cases the frame will
not be maxFrameSize. Because there is a Transport for every connection the
memory usage can become quite high when dealing with many connections with
large maxFrameSize, e.g. 2GB for only 1000 connections.
An proof of concept implementation for reducing the memory footprint by only
allocating the buffers when needed can be found here:
https://github.com/marcelmeulemans/qpid-proton/
See also the short mailinglist disscusion here:
http://qpid.2158936.n2.nabble.com/High-memory-footprint-of-proton-j-in-ActiveMQ-td7608977.html
--
This message was sent by Atlassian JIRA
(v6.2#6252)