Details
-
New Feature
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
0.2
-
None
-
None
Description
Thrift structs can take up a lot of memory in Java. In my particular application, many of the structs I load have common subcomponents. When deserializing these structs today, each copy of the common subcomponents takes up a fresh chunk of memory.
To reduce this memory usage, I propose that we add an "intern" method to Thrift structs. This method would maintain a static class-level cache of canonical versions of instances of objects. When calling "intern", if the object was not in the cache, it would add it and return the same struct. If it was in the cache, it would return the canonical version, allowing the non-canonical version to be dropped during garbage collection.
Attachments
Issue Links
- is related to
-
THRIFT-3583 Add support for generating immutable java stubs for structs and unions
- Open