[
https://issues.apache.org/jira/browse/THRIFT-115?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12671932#action_12671932
]
Bryan Duxbury commented on THRIFT-115:
--------------------------------------
Object types never need a separate isset field, because they can be null. We
can avoid generating issets for all object types.
Required fields must ALWAYS be set, so they don't need isset fields, except
when reading, so that we can perform proper validation. (equals(), and write()
all assume that primitive required fields are set and write them no matter
what.)
> Isset structure has a large memory footprint
> --------------------------------------------
>
> Key: THRIFT-115
> URL: https://issues.apache.org/jira/browse/THRIFT-115
> Project: Thrift
> Issue Type: Improvement
> Components: Library (Java)
> Reporter: Bryan Duxbury
> Priority: Minor
>
> My understanding is that in Java, booleans stored individually (that is,
> outside an array) take up the same space as an int in the host JVM. This
> means that they might take up to 4 bytes each! As a result, the Isset classes
> internal to generated structs consume a considerable quantity of memory.
> Boolean arrays in Java shrink each element to a byte, which would be an
> improvement. We could go even further and use a bit field and pack all the
> isset values into a few bytes. This could shave a considerable bit of the
> memory footprint.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.