[ https://issues.apache.org/jira/browse/PROTON-2321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17325302#comment-17325302 ]
ASF subversion and git services commented on PROTON-2321: --------------------------------------------------------- Commit c90a881af16e643128795353df92c2c1835ead81 in qpid-proton's branch refs/heads/main from Jiri Daněk [ https://gitbox.apache.org/repos/asf?p=qpid-proton.git;h=c90a881 ] PROTON-2321 Add benchmark for pn_data_t initialization from PROTON-2229 (#286) > Add benchmark for pn_data_t initialization (PROTON-2229) > -------------------------------------------------------- > > Key: PROTON-2321 > URL: https://issues.apache.org/jira/browse/PROTON-2321 > Project: Qpid Proton > Issue Type: Test > Components: proton-c > Affects Versions: proton-c-0.33.0 > Reporter: Jiri Daněk > Assignee: Jiri Daněk > Priority: Major > Fix For: proton-c-0.35.0 > > > {noformat} > ----------------------------------------------------------------------------------- > Benchmark Time CPU > Iterations > ----------------------------------------------------------------------------------- > // size_t size = bytes->size + 0; > BM_Encode10MbMessage/put_binary count:1 71.7 ms 70.4 ms > 10 > BM_Encode10MbMessage/put_binary count:10 239 ms 205 ms > 3 > // size_t size = bytes->size + 1; > BM_Encode10MbMessage/put_binary count:1 1.25 ms 0.874 ms > 744 > BM_Encode10MbMessage/put_binary count:10 1059 ms 1045 ms > 1 > // size_t size = bytes->size + 2; > BM_Encode10MbMessage/put_binary count:1 1.22 ms 0.916 ms > 634 > BM_Encode10MbMessage/put_binary count:10 178 ms 135 ms > 5 > // size_t size = pn_max(bytes->size+1, PNI_INTERN_MINSIZE); > BM_Encode10MbMessage/put_binary count:1 0.941 ms 0.815 ms > 783 > BM_Encode10MbMessage/put_binary count:10 1390 ms 1187 ms > 1 > // size_t size = pn_max(bytes->size+2, PNI_INTERN_MINSIZE); > BM_Encode10MbMessage/put_binary count:1 0.922 ms 0.811 ms > 718 > BM_Encode10MbMessage/put_binary count:10 184 ms 144 ms > 5 > {noformat} > The above shows that + 1 improves things significantly, but there is a > scenario where + 2 is even better. > {code} > static int pni_data_intern_node(pn_data_t *data, pni_node_t *node) > { > pn_bytes_t *bytes = pni_data_bytes(data, node); > if (!bytes) return 0; > if (data->buf == NULL) { > // Heuristic to avoid growing small buffers too much > // size + 1 to allow for zero termination > size_t size = pn_max(bytes->size+1, PNI_INTERN_MINSIZE); > ... > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org For additional commands, e-mail: dev-h...@qpid.apache.org