qpid-proton mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (PROTON-998) [C++ binding] Restore performance with lazy message creation and reuse
Date Wed, 16 Sep 2015 18:05:46 GMT

    [ https://issues.apache.org/jira/browse/PROTON-998?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14790824#comment-14790824

ASF subversion and git services commented on PROTON-998:

Commit 05beb2183dc0c0232284f045007f8d3af2ed73e7 in qpid-proton's branch refs/heads/master
from Clifford Jansen
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=05beb21 ]

PROTON-998: [C++ binding] restore lost performance

> [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

View raw message