You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by "Justin Ross (JIRA)" <ji...@apache.org> on 2015/11/30 15:22:10 UTC
[jira] [Closed] (PROTON-998) [C++ binding] Restore performance with
lazy message creation and reuse
[ https://issues.apache.org/jira/browse/PROTON-998?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Justin Ross closed PROTON-998.
------------------------------
Resolution: Fixed
> [C++ binding] Restore performance with lazy message creation and reuse
> ----------------------------------------------------------------------
>
> Key: PROTON-998
> URL: https://issues.apache.org/jira/browse/PROTON-998
> Project: Qpid Proton
> Issue Type: Bug
> Affects Versions: 0.10.1
> Environment: C++ reactive binding
> Reporter: Cliff Jansen
> Assignee: Cliff Jansen
> Fix For: 0.10.1
>
>
> The C++ binding has become several times slower over time.
> Investigating this performance degradation yields the following
> observations.
> Creating and destroying some Proton C objects is expensive.
> A pn_data_t requires 7 separate malloc and free calls.
> A pn_message_t requires almost 60 (there are 7 pn_data_t members in a
> pn_message_t)
> The cost set-up and tear down can exceed the use cost, so re-use can
> provide a serious performance win.
> As a corollary, no Proton object should be included in a C++ messaging
> event for the 'just in case' scenario, since so many are ignored by
> the application.
> Sample performance numbers for loopback messages on a 4 core 8 thread laptop:
> 62,000 msgs/sec: unused message per event, except during on_message (current code)
> 135,000 msgs/sec: lazy message creation and destruction at on_message
> 190,000 msgs/sec: re-use pn_message_t object for all inbound messages on a connection
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)