On designing a low-power garbage collector for java embedded devices: a case study

  • Authors:
  • Paul Griffin;Witawas Srisa-An;J. Morris Chang

  • Affiliations:
  • Iowa State University, Ames, IA;University of Nebraska - Lincoln, Lincoln, NE;Iowa State University, Ames, IA

  • Venue:
  • Proceedings of the 2005 ACM symposium on Applied computing
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper presents an energy consumption comparison between two well-known garbage collection algorithms---mark-sweep-compact and reference counting. Our goal is to evaluate the suitability of reference counting as an algorithm for memory-constrained Java embedded devices. We hypothesize that reference counting would be suitable because it has higher data locality, which should reduce the number of data-cache misses, and so reduce energy consumption. However, this benefit could be offset by the extra instructions required for each reference update, a basic requirement of reference counting. To test our hypothesis, we implement, into Sun's KVM, a hybrid scheme that combines a standard mark-sweep-compact collector and limited-field reference counting. Our hybrid scheme is then compared against the default KVM with only mark-sweep-compact. We investigate several performance metrics that contribute to the performance of the system, including number of garbage collections, instructions, level-1 instruction and data cache misses, and total energy consumption.Based on our observations, the hybrid scheme yields three important benefits: (a) the hybrid scheme reclaims most memory quickly, resulting in less mark-sweep garbage collection invocations, (b) the reduction in garbage collection improves cache locality and reduces the number of main memory accesses, and (c) the reduction in memory accesses ultimately results in lower energy consumption, since a memory access can be energy-intensive. Our results confirm our hypothesis, with the hybrid scheme requiring up to 59% less energy than the default KVM.