Ted Ross created PROTON-1687:
--------------------------------

             Summary: Improve efficiency of the transport output buffer
                 Key: PROTON-1687
                 URL: https://issues.apache.org/jira/browse/PROTON-1687
             Project: Qpid Proton
          Issue Type: Improvement
          Components: proton-c
    Affects Versions: proton-c-0.18.0
            Reporter: Ted Ross


As the size of the transport output buffer grows due to production of 
deliveries sent through pn_link_send, the amount of time that the CPU spends in 
memmove becomes a problem.

It appears (dispatcher.c - pn_dispatcher_output) that whenever a block of data 
is removed from the buffer, the remainder of the data in the buffer is shifted 
down using memmove.  If the buffer contains a large amount of data (100s of 
megabytes), the sending process may spend several minutes doing almost nothing 
but running memmove.

Some data:
  (credit window of 250, unlimited session window, 1 MB payload)
  - 10 messages, .251 sec, 40 deliveries/sec
  - 20 messages, 1.267s, 16 dlv/s
  - 40 messages, 6s, 7 dlv/s
  - 80 messages, 28s, 3 dlv/s
  - 160 messages, 138s, ~1 dlv/s






--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to