The Need for Predictable Garbage Collection
Alastair Reid, John McCorquodale, Jason Baker, Wilson Hsieh, and Joseph Zachary
flux@cs.utah.edu
May 1999
The Flux Research Group
Department of Computer Science
University of Utah
50 S. Central Campus Drive Rm. 3190
Salt Lake City, Utah 84112-9205
Abstract
Modern programming languages such as Java are increasingly being used
to write systems programs. By ``systems programs,'' we mean programs
that provide critical services (compilers), are long-running (Web
servers), or have time-critical aspects (databases or query engines).
One of the requirements of such programs is predictable behavior.
Unfortunately, predictability is often compromised by the presence of
garbage collection. Various researchers have examined the feasibility
of replacing garbage collection with forms of stack allocation that
are more predictable than GC, but the applicability of such research
to systems programs has not been studied or measured. A particularly
promising approach allocates objects in the n-th stack frame (instead
of just the topmost frame): we call this deep stack allocation.
We present dynamic profiling results for several Java programs to show
that deep stack allocation should benefit systems programs, and we
describe the approach that we are developing to perform deep stack
allocation in Java.
Full paper, available in
compressed Postscript
format ,
presented at
ACM SIGPLAN Workshop on Compiler Support for System Software
(WCSSS'99), May 1, 1999, Atlanta, GA.