Controlling garbage collection and heap growth to reduce the execution time of Java applications

  • Authors:
  • Tim Brecht;Eshrat Arjomandi;Chang Li;Hang Pham

  • Affiliations:
  • University of Waterloo and Hewlett-Packard Labs, Department of Computer Science, Waterloo, Ontario N2L 3G1;York University, Department of Computer Science, Toronto, Ontario M3J 1P3;York University, Department of Computer Science, Toronto, Ontario M3J 1P3;York University, Department of Computer Science, Toronto, Ontario M3J 1P3

  • Venue:
  • OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

Abstract

In systems that support garbage collection, a tension exists between collecting garbage too frequently and not collecting garbage frequently enough. Garbage collection that occurs too frequently may introduce unnecessary overheads at the rist of not collecting much garbage during each cycle. On the other hand, collecting garbage too infrequently can result in applications that execute with a large amount of virtual memory (i.e., with a large footprint) and suffer from increased execution times die to paging. In this paper, we use a large colleciton of Java applications and the highly tuned and widely used Boehm-Demers-Weiser (BDW) conservative mark-and-sweep garbage collector to experimentally examine the extent to which the frequency of garbage collectio impacts an application's execution time, footprint, and pause times. We use these results to devise some guidelines for controlling garbage and heap growth in a conservative garbage collection in order to minimize application execution times. Then we describe new strategies for controlling in order to minimize application execution times.