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: [email protected]
For additional commands, e-mail: [email protected]