Author: gsim Date: Fri Oct 10 12:57:38 2014 New Revision: 1630859 URL: http://svn.apache.org/r1630859 Log: PROTON-700 : small performance improvement from inlining pn_data_node(). This is a very popular function. improvement on newer box was 6% , on older box 2.6% t-test after 50 reps before & after says odd of the 2.6% figure happening by chance is 2.0e-18 .
Modified: qpid/proton/branches/examples/proton-c/src/codec/codec.c qpid/proton/branches/examples/proton-c/src/codec/data.h Modified: qpid/proton/branches/examples/proton-c/src/codec/codec.c URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/proton-c/src/codec/codec.c?rev=1630859&r1=1630858&r2=1630859&view=diff ============================================================================== --- qpid/proton/branches/examples/proton-c/src/codec/codec.c (original) +++ qpid/proton/branches/examples/proton-c/src/codec/codec.c Fri Oct 10 12:57:38 2014 @@ -1111,15 +1111,6 @@ int pn_data_resize(pn_data_t *data, size } -pni_node_t *pn_data_node(pn_data_t *data, pni_nid_t nd) -{ - if (nd) { - return &data->nodes[nd - 1]; - } else { - return NULL; - } -} - size_t pn_data_id(pn_data_t *data, pni_node_t *node) { return node - data->nodes + 1; Modified: qpid/proton/branches/examples/proton-c/src/codec/data.h URL: http://svn.apache.org/viewvc/qpid/proton/branches/examples/proton-c/src/codec/data.h?rev=1630859&r1=1630858&r2=1630859&view=diff ============================================================================== --- qpid/proton/branches/examples/proton-c/src/codec/data.h (original) +++ qpid/proton/branches/examples/proton-c/src/codec/data.h Fri Oct 10 12:57:38 2014 @@ -61,7 +61,11 @@ struct pn_data_t { pni_nid_t base_current; }; -pni_node_t *pn_data_node(pn_data_t *data, pni_nid_t nd); +inline pni_node_t * pn_data_node(pn_data_t *data, pni_nid_t nd) +{ + return nd ? (data->nodes + nd - 1) : NULL; +} + int pni_data_traverse(pn_data_t *data, int (*enter)(void *ctx, pn_data_t *data, pni_node_t *node), int (*exit)(void *ctx, pn_data_t *data, pni_node_t *node), --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org