thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bryan Duxbury (JIRA)" <j...@apache.org>
Subject [jira] Commented: (THRIFT-112) Initialize method is unnecessarily slow for structs with many optional fields
Date Tue, 19 Aug 2008 16:57:44 GMT

    [ 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.


Mime
View raw message