No Bit Left Behind: The Limits of Heap Data Compression
University of Texas at Austin Austin United States
Pagination or Media Count:
On one hand, the high cost of memory continues to drive demand for memory efficiency on embedded and general purpose computers On the other hand, programmers are increasingly turning to managed languages like Java for their functionality, programmability, and reliability. Managed languages, however, are not known for their memory efficiency, creating a tension between productivity and performance. This paper examines the sources and types of memory inefficiencies in a set of Java benchmarks. Although prior work has proposed specific heap data compression techniques, they are typically restricted to one model of inefficiency. This paper generalizes and quantitatively compares previously proposed memory saving approaches and idealized heap compaction. It evaluates a variety of models based on strict and deep object equality, field value equality, removing bytes that are zero, and compressing fields and arrays with a limited number and range of values. The results show that substantial memory reductions are possible in the Java heap. For example, removing bytes that are zero from arrays is particularly effective, reducing the applications memory footprint by41 on average. We are the first to combine multiple savings models on the heap, which very effectively reduces the application by up to 86 , on average 58 . These results demonstrate that future work should be able to combine a high productivity programming language with memory efficiency.
- Computer Programming and Software