[ 
https://issues.apache.org/jira/browse/THRIFT-115?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mathias Herberts updated THRIFT-115:
------------------------------------

    Attachment: thrift-115-v4.patch

This patch is a slightly modified version of Bryan's v3. It uses a new class 
ThriftBitSet instead of Java's standard BitSet. This change was done to 
maintain compatibility with an extension to the thrift compiler which generates 
Java classes compatible with the Google Web Toolkit which does not support 
BitSet in its JavaScript JRE emulation layer.

The ThriftBitSet class implements bit set lazily, only allocating space up to 
the highest bit set. 

> 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
>            Assignee: Bryan Duxbury
>            Priority: Minor
>             Fix For: 0.2
>
>         Attachments: thrift-115-v2.patch, thrift-115-v3.patch, 
> thrift-115-v4.patch, thrift-115.patch
>
>
> 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.

Reply via email to