ACM Home Page
Please provide us with feedback. Feedback
Garbage collection and local variable type-precision and liveness in Java virtual machines
Full text PdfPdf (1.54 MB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation table of contents
Montreal, Quebec, Canada
Pages: 269 - 279  
Year of Publication: 1998
ISBN:0-89791-987-4
Also published in ...
Authors
Ole Agesen  Sun Microsystems Laboratories, 2 Elizabeth Drive, Chelmsford, MA
David Detlefs  Sun Microsystems Laboratories, 2 Elizabeth Drive, Chelmsford, MA
J. Eliot Moss  Department of Computer Science, University of Massachusetts, Amherst, MA
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 14,   Downloads (12 Months): 93,   Citation Count: 20
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/277650.277738
What is a DOI?

ABSTRACT

Full precision in garbage collection implies retaining only those heap allocated objects that will actually be used in the future. Since full precision is not computable in general, garbage collectors use safe (i.e., conservative) approximations such as reachability from a set of root references. Ambiguous roots collectors (commonly called "conservative") can be overly conservative because they overestimate the root set, and thereby retain unexpectedly large amounts of garbage. We consider two more precise collection schemes for Java virtual machines (JVMs). One uses a type analysis to obtain a type-precise root set (only those variables that contain references); the other adds a live variable analysis to reduce the root set to only the live reference variables. Even with the Java programming language's strong typing, it turns out that the JVM specification has a feature that makes type-precise root sets difficult to compute. We explain the problem and ways in which it can be solved.Our experimental results include measurements of the costs of the type and liveness analyses at load time, of the incremental benefits at run time of the liveness analysis over the type analysis alone, and of various map sizes and counts. We find that the liveness analysis often produces little or no improvement in heap size, sometimes modest improvements, and occasionally the improvement is dramatic. While further study is in order, we conclude that the main benefit of the liveness analysis is preventing bad surprises.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

Aditya et al., 1994
 
Agesen & Detlefs, 1997
Ole Agesen and David Detlefs. Finding references in Java stacks. Tech. Rep. SMI~E-97-67, Sun Microsystems Laboratories, Chelmsford, MA, USA, Oct. 1997. Presented at the OOPSLA '97 workshop on garbage collection.
Agesen et al., 1997
 
Appel, 1989
Andrew W. Appel. Runtime tags aren't necessary. L/sp and Symbolic Computation 2 (1989), 153-162.
 
Appel, 1992
 
Appel & Hanson, 1988
Andrew W. Appel and David R. Hanson. Copying garbage collection in the presence of ambiguous references. Tech. Rep. CS-TR- 162-88, Princeton University, 1988.
Baker, 1990
Barth, 1977
 
Bartlett, 1988
Joel E Bartlett. Compacting garbage collection with ambiguous roots. Tech. Rep. 88/2, DEC Western Research Laboratory, Palo Alto, CA, Feb. 1988. Also in Lisp Pointers 1, 6 (April-June 1988), pp. 2-12.
 
Bartlett, 1989
Joel F. Bartlett. Mostly-Copying garbage collection picks up generations and C++. Technical note, DEC Western Research Laboratory, Palo Alto, CA, Oct. 1989. Sources available in ftp://gatekeeper, dec.com/pub/DEC/CCgc.
Boehm, 1991
Boehm, 1993
Boehm, 1996
 
Boehm & Chase, 1992
Hans-Juergen Boehm and David R. Chase. A proposal for garbage-collector-safe C compilation. Journal of C Language Translation (1992), 126-141.
 
Boehm & Shao, 1993
Hans-Juergen Boehm and Zhong Shao. inferring type maps during garbage collection. In OOPSLA/ECOOP '93 Workshop on Garbage Collection in Object-Oriented Systems (Oct. 1993), Eliot Moss, Paul R. Wilson, and Benjamin Zorn, Eds.
 
Boehm & Weiser, 1988
 
Branquart & Lewi, 1971
P. Branquart and J. Lewi. A scheme of storage allocation and garbage collection for Algol-68. In {Peck, 1971}, pp. 198-238.
 
Britton, 1975
Dianne Ellen Bfitton. Heap storage management for the programming language Pascal. Master's thesis, University of Arizona, 1975.
 
Bruynooghe, 1987
 
Chase, 1997
David Chase, Nov. 1997. Personal communication.
 
Chase, 1987
David R. Chase. Garbage collection and other optimizations. Tech. rep., Rice University, Aug. 1987.
Chase, 1988
Chase et al., 1990
Deutsch, 1990
Diwan et al., 1992
 
Foster & Winsborough, 1991
Ian Foster and William Winsborough. Copy avoidance through compile-time analysis and local reuse. In Procee&'ngs of International Logic Programming Sympsium (1991), pp. 455--469.
Fradet, 1994
Goldberg, 1991
Goldberg & Gloger, 1992
Gosling, 1995
 
Gosling et al., 1996
 
Hamilton, 1993
G.W. Hamilton. Compile-Time Optirnisation of Store Usage in Lazy Funtional Programs. PhD thesis, University of StirUng, 1993.
 
Hamilton, 1995
 
Hamilton & Jones, 1991
G.W. Hamilton and Simon B. Jones. Compile-time garbage collection by necessity analysis. In {Peyton Jones et al., 1991}, pp. 66-70.
 
Hederman, 1988
Lucy Hederman. Compile-time garbage collection using reference count analysis. Master's thesis, Rice University, Aug. 1988. Also Rice University Technical Report TR88-75 lint, according to Rice University's technical report list, this report is no longer available for distribution.
Hicks, 1993
Hudak, 1986
 
Hudak, 1987
Paul R. Hudak. A semantic model of reference counting and its abstraction. In Abstract Interpretation of Declarative Languages, Samson Abramsky and Chris Hankin, Eds. Ellis Horward, 1987, pp. 45--62.
 
Hughes, 1992
Simon Hughes. Compile-time garbage collection for higher-order functional languages. Journal of Logic and Computation 2, 4 (Aug. 1992), 483-509. Special Issue on Abstract Interpretation.
Inoue et al., 1988
 
Jensen & Mogensen, 1990
 
Jones, 1995
Simon B. Jones. An experiment in compile time garbage collection. Tech. Rep. 84, Programming Methodology Group, Gtteborg University and Chalmers University of Technology, Jan. 1995.
Jones & le Métayer, 1989
 
Jones & Tyas, 1993
Simon B. Jones and Andrew S. Tyas. The implementer's dilemma: A mathematical model of compile-time garbage collection. In Sixth Annual Glasgow Workshop on Functional Programming (1993), Workshops in Computer Science, Springer-Verlag, pp. 139-144.
 
Jones & White, 1991
Simon B. Jones and M. White. Is compile time garbage collection worth the effort. In {Peyton Jones et aL, 1991}, pp. 172-176.
 
LFP, 1994
Conference Record of the 1994 ACM Symposium on Lisp and Functional Programming (June 1994), ACM Press.
 
Lindholm & Yellin, 1996
 
Mohnen, 1995
 
Mulkers, 1993
Mulkers et al., 1994
 
Peck, 1971
 
Peyton Jones et al., 1991
Simon L. Peyton Jones, G. Hutton, and C. K. Hols, Eds. Third Annual Glasgow Workshop on Functional Programming (1991), Springer-Verlag.
 
PLDI, 1996
Proceedings of SlGPLAN'96 Conference on Programming Languages Design and Implementation (1996), ACM SIGPLAN Notices, ACM Press.
Shao & Appel, 1994
Tarditi et al., 1996
 
Thomas, 1995
 
Thomas, 1993
Stephen P. Thomas. The Pragmatics of Closure Reduction. PhD thesis, The Computing Laboratory, University of Kent at Canterbury, Oct. 1993.
 
Thomas & Jones, 1994
Stephen P. Thomas and Richard E. Jones. Garbage collection for shared environment closure reducers. Tech. rep., University of Kent and University of Nottingham, Dec. 1994.
Tolmach, 1994
Wadler, 1984
 
Wentworth, 1990
 
Woden, 1971
P.L. Woden. Methods of garbage collection for Algol--68. In {Peck, 1971}, pp. 245-262.

CITED BY  20

Collaborative Colleagues:
Ole Agesen: colleagues
David Detlefs: colleagues
J. Eliot Moss: colleagues