You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Jens Geyer (JIRA)" <ji...@apache.org> on 2013/09/20 01:17:52 UTC

[jira] [Comment Edited] (THRIFT-2200) nested structs cause generate_fingerprint() to slow down at excessive CPU load

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

Jens Geyer edited comment on THRIFT-2200 at 9/19/13 11:17 PM:
--------------------------------------------------------------

The patch idea:
(a) reduce  memory reallocation in get_fp_material()
(b) lazy fp generation: only when we really need it

Tested against previous output. Old fingerprints remain the same, but due to the nature of the change the compiler now creates fps for ALL structs. I don't think this is a showstopper, though.
                
      was (Author: jensg):
    The patch idea:
a) reduce  memory reallocation in get_fp_material()
b) lazy fp generation: only when we really need it
                  
> 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