ACM Home Page
Please provide us with feedback. Feedback
On the usefulness of type and liveness accuracy for garbage collection and leak detection
Full text PdfPdf (685 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 24 ,  Issue 6  (November 2002) table of contents
Pages: 593 - 624  
Year of Publication: 2002
ISSN:0164-0925
Authors
Martin Hirzel  University of Colorado, Boulder, CO
Amer Diwan  University of Colorado, Boulder, CO
Johannes Henkel  University of Colorado, Boulder, CO
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 10,   Downloads (12 Months): 50,   Citation Count: 10
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/586088.586089
What is a DOI?

ABSTRACT

The effectiveness of garbage collectors and leak detectors in identifying dead objects depends on the accuracy of their reachability traversal. Accuracy has two orthogonal dimensions: (i) whether the reachability traversal can distinguish between pointers and nonpointers (type accuracy), and (ii) whether the reachability traversal can identify memory locations that will be dereferenced in the future (liveness accuracy). This article presents an experimental study of the importance of type and liveness accuracy for reachability traversals. We show that liveness accuracy reduces the reachable heap size by up to 62% for our benchmark programs. However, the simpler liveness schemes (e.g., intraprocedural analysis of local variables) are largely ineffective for our benchmark runs: one must analyze global variables using interprocedural analysis to obtain significant benefits. Type accuracy has an insignificant impact on a garbage collector's ability to find unreachable objects in our benchmark runs. We report results for programs written in C, C++, and Eiffel.


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.

1
 
2
 
3
 
4
Attanasio, C. R., Bacon, D. F., Cocchi, A., and Smith, S. 2001. A comparative evaluation of parallel garbage collector implementations. In Workshop on Languages and Compilers for Parallel Computing (LCPC), (Aug.).
 
5
Bartlett, J. F. 1988. Compacting garbage collection with ambiguous roots. Tech. Rep. 88/2. DEC Western Research Laboratory, Palo Alto, Calif. (Also in LISP Pointers 1, 6 (Apr.-June), 2--12.
 
6
Bartlett, J. F. 1989. Mostly-copying garbage collection picks up generations and C++. Tech. Rep. DEC Western Research Laboratory, Palo Alto, Calif.
7
 
8
Boehm, H.-J., Demers, A. J., and Weiser, M. 2002. A garbage collector for C and C++. http://www.hpl.hp.com/personal/Hans_Boehm/gc/.
 
9
Boehm, H.-J. and Shao, Z. 1993. Inferring type maps during garbage collection. In OOPSLA '93 Workshop on Memory Management and Garbage Collection (Sept.). ACM, New York.
 
10
11
 
12
Dion, J. and Monier, L. 2002. Third degree. http://research.compaq.com/wrl/projects/om/third.html.
13
 
14
Edison Design Group. 2002. http://www.edg.com.
15
 
16
Geodesic Systems. 2002. Great Circle---Real-time error detection and code diagnosis for developers. http://www.geodesic.com/solutions/products_gc_overview.html.
 
17
 
18
Hastings, R. and Joyce, B. 1992. Fast detection of memory leaks and access errors. In Proceedings of the Winter '92 USENIX Conference, pp. 125--136.
19
20
 
21
 
22
 
23
 
24
25
26
27
28
 
29
Stanford University SUIF Research Group. 2002. SUIF compiler system version 1.x. http://suif.stanford.edu/suif/suif1/index.html.
30
31
32
33
 
34
35
 
36
 
37
Zorn, B. G., 1991. The effect of garbage collection on cache performance. Tech. Rep. CU-CS-528-91. Univ. Colorado at Boulder, Boulder, Col., May.

CITED BY  10

Collaborative Colleagues:
Martin Hirzel: colleagues
Amer Diwan: colleagues
Johannes Henkel: colleagues