[ 
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

Reply via email to