No Bit Left Behind: The Limits of Heap Data Compression

Abstract

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.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jun 01, 2008
Accession Number
AD1024609

Entities

People

  • Jennifer B. Sartor
  • Kathryn S. Mckinley
  • Martin Hirzel

Organizations

  • University of Texas at Austin

Tags

Communities of Interest

  • Advanced Electronics
  • Energy and Power Technologies
  • Materials and Manufacturing Processes

DTIC Thesaurus Topics

  • Accumulators
  • Compression
  • Compressive Properties
  • Computer Programming
  • Computer Science
  • Computers
  • Data Compression
  • Dictionaries
  • Efficiency
  • English Language
  • Hash Tables
  • Language
  • Optimization
  • Personality
  • Programming Languages
  • Reliability
  • Virtual Machines

Fields of Study

  • Computer science

Readers

  • Computer Programming and Software Development.
  • Parallel and Distributed Computing.