[
https://issues.apache.org/jira/browse/THRIFT-112?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12623724#action_12623724
]
Bryan Duxbury commented on THRIFT-112:
--------------------------------------
I don't have an abstract benchmark at the moment. We did our performance
testing with a semi-live app. I can try to create a benchmark if it's
absolutely necessary.
> Initialize method is unnecessarily slow for structs with many optional fields
> -----------------------------------------------------------------------------
>
> Key: THRIFT-112
> URL: https://issues.apache.org/jira/browse/THRIFT-112
> Project: Thrift
> Issue Type: Improvement
> Components: Library (Ruby)
> Reporter: Bryan Duxbury
> Priority: Minor
> Attachments: thrift-112.patch
>
>
> We have Thrift structs that are composed of mostly optional fields, and only
> one is occupied. (The struct is used like a C union.) In Ruby, this leads to
> an inordinate amount of time being spent creating instances. We've tracked
> this down to the initialize method, which iterates over all fields, setting
> defaults or taking constructor args as needed. A fairly effective fix for us
> was to only iterate the union of fields that have default values or are being
> set via the constructor. In the worst case, either when all fields have
> default values or when the user is setting all fields' values via the
> constructor, it is no more costly than the existing implementation.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.