|
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
|
Shail Aditya , Christine H. Flood , James E. Hicks, Garbage collection for strongly-typed languages using run-time type reconstruction, Proceedings of the 1994 ACM conference on LISP and functional programming, p.12-23, June 27-29, 1994, Orlando, Florida, United States
|
| |
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
|
Paul R. Wilson , Barry Hayes, Garbage collection in object oriented systems, Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum), p.63-71, October 06-11, 1991, Phoenix, Arizona, United States
|
 |
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
|
Amer Diwan , Eliot Moss , Richard Hudson, Compiler support for garbage collection in a statically typed language, Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation, p.273-282, June 15-19, 1992, San Francisco, California, United States
|
| |
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
|
D. Tarditi , G. Morrisett , P. Cheng , C. Stone , R. Harper , P. Lee, TIL: a type-directed optimizing compiler for ML, Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation, p.181-192, May 21-24, 1996, Philadelphia, Pennsylvania, United States
|
| |
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
|
|
|
|
|
|
|
|
Seungll Lee , Byung-Sun Yang , Suhyun Kim , Seongbae Park , Soo-Mook Moon , Kemal Ebcioğlu , Erik Altman, Efficient Java exception handling in just-in-time compilation, Proceedings of the ACM 2000 conference on Java Grande, p.1-8, June 03-04, 2000, San Francisco, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
Ramesh Radhakrishnan , N. Vijaykrishnan , Lizy Kurian John , Anand Sivasubramaniam , Juan Rubio , Jyotsna Sabarinathan, Java Runtime Systems: Characterization and Architectural Implications, IEEE Transactions on Computers, v.50 n.2, p.131-146, February 2001
|
|
|
G. Chen , R. Shetty , M. Kandemir , N. Vijaykrishnan , M. J. Irwin , M. Wolczko, Tuning garbage collection for reducing memory system energy in an embedded java environment, ACM Transactions on Embedded Computing Systems (TECS), v.1 n.1, p.27-55, November 2002
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|