Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Com 2011
DOI: 10.1145/2048147.2048201
|View full text |Cite
|
Sign up to set email alerts
|

Smaller footprint for Java collections

Abstract: Bloat, specifically, containers's bloat is a potential JAVA performance bottleneck. We identify five memory compaction techniques that can be used to reduce the footprint of the small objects that make containers. Using these techniques, we describe methods for more efficient encoding of some JRE's ubiquitous data structures. For HashMap and HashSet the fused hashing encoding method, reduces memory overhead by 20%-45% on a 32-bit environment and 45%-65% on a 64-bit environment. This encoding guarantees these f… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
11
0

Year Published

2013
2013
2015
2015

Publication Types

Select...
4
1

Relationship

0
5

Authors

Journals

citations
Cited by 8 publications
(11 citation statements)
references
References 4 publications
0
11
0
Order By: Relevance
“…In Java every object is 8-byte memory aligned, allowing for memory compaction techniques [7]. Consequently, if an object's header together with the size of all fields do not sum to a multiple of eight, your object will be aligned to the nearest 8-byte boundary and consume more memory than strictly necessary.…”
Section: Modeling and Measuring Memorymentioning
confidence: 99%
“…In Java every object is 8-byte memory aligned, allowing for memory compaction techniques [7]. Consequently, if an object's header together with the size of all fields do not sum to a multiple of eight, your object will be aligned to the nearest 8-byte boundary and consume more memory than strictly necessary.…”
Section: Modeling and Measuring Memorymentioning
confidence: 99%
“…Instead, dynamic information was summarized as advice to the programmer to make source code changes. Other work [13] [38] has addressed specific representation issues in collections. Some JVMs represent arrays with discontiguous array-lets [3,7,29] which save memory with zero-compression, copy-on-write, and lazy allocation and improve garbage collection pause times by limiting the maximum object size.…”
Section: Related Workmentioning
confidence: 99%
“…It is implemented as an extension to JUnit [13], a popular unit-testing framework, and thereby allows developers to check calculation coverage, along with ordinary function testing by JUnit. The HPCUnit provides for developers' annotations and helper classes to describe which method is a kernel function and which invocations to the kernel functions are logged with their arguments to construct a calculation group.…”
Section: Hpcunitmentioning
confidence: 99%
“…However, that requires changing the HPCUNit API design, which we carefully designed for application development productivity. We plan to apply several optimizing techniques to reduce overheads for collecting runtime logs [37] and to reduce the Java collections memory footprint [13].…”
Section: Empirical Study With Benchmarksmentioning
confidence: 99%