[ 
https://issues.apache.org/jira/browse/THRIFT-2200?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13774545#comment-13774545
 ] 

Ben Craig commented on THRIFT-2200:
-----------------------------------

I have not tested the patch and I don't use fingerprints / dense protocol, but 
it looks (mostly) good.  The only thing that I saw that seemed off was the 
following lines:
+    if( rv.capacity() > (rv.size() + 0x4000)) {
+      rv.reserve( rv.size());  // correct heavily oversized allocations to 
reduce memory footprint
+    }
string::reserve usually won't shrink a string's capacity.  I would recommend 
removing those lines.
                
> nested structs cause generate_fingerprint() to slow down at excessive CPU load
> ------------------------------------------------------------------------------
>
>                 Key: THRIFT-2200
>                 URL: https://issues.apache.org/jira/browse/THRIFT-2200
>             Project: Thrift
>          Issue Type: Bug
>          Components: Compiler (General)
>            Reporter: Jens Geyer
>            Assignee: Jens Geyer
>             Fix For: 0.9.2
>
>         Attachments: THRIFT-2200_slow_fingerprints.patch
>
>
> The file http://pastebin.com/H5Uj74aW contains a number of nested structs 
> definitions. These highly recursive structs (over 8 levels in this case) 
> cause the get_fingerprint_material() method to loop over minutes.
> Thanks to Niclas who prepared the pastebin.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to