Jiri Daněk created PROTON-2321: ---------------------------------- Summary: 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 Fix For: proton-c-0.34.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