Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
proton-j-0.23.0
-
None
Description
Running performance tests using Qpid Broker J and Qpid JMS Client (0.26.0) shows that receipt of large messages is very slow in comparison with the send of the same message. For instance, sending 300MiB bytes message takes 5 seconds on my laptop. The receipt takes 97 seconds.
Instrumenting the client stack shows an obvious hot-spot in Proton-J. org.apache.qpid.proton.engine.impl.TransportSession#handleTransfer re-allocates/array copies the entire delivery buffer for ever transfer that comprises it. This leads to a non-linear loss of performance. The stack include Proton-J 0.23.0, but is looks like this code is unchanged.