ACM Home Page
Please provide us with feedback. Feedback
An on-the-fly reference-counting garbage collector for java
Full text PdfPdf (787 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 28 ,  Issue 1  (January 2006) table of contents
Pages: 1 - 69  
Year of Publication: 2006
ISSN:0164-0925
Authors
Yossi Levanoni  Microsoft Corporation, Redmond, WA
Erez Petrank  Technion---Israel Institute of Technology, Haifa, Israel
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 15,   Downloads (12 Months): 124,   Citation Count: 6
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/1111596.1111597
What is a DOI?

ABSTRACT

Reference-counting is traditionally considered unsuitable for multiprocessor systems. According to conventional wisdom, the update of reference slots and reference-counts requires atomic or synchronized operations. In this work we demonstrate this is not the case by presenting a novel reference-counting algorithm suitable for a multiprocessor system that does not require any synchronized operation in its write barrier (not even a compare-and-swap type of synchronization). A second novelty of this algorithm is that it allows eliminating a large fraction of the reference-count updates, thus, drastically reducing the reference-counting traditional overhead. This article includes a full proof of the algorithm showing that it is safe (does not reclaim live objects) and live (eventually reclaims all unreachable objects).We have implemented our algorithm on Sun Microsystems' Java Virtual Machine (JVM) 1.2.2 and ran it on a four-way IBM Netfinity 8500R server with 550-MHz Intel Pentium III Xeon and 2 GB of physical memory. Our results show that the algorithm has an extremely low latency and throughput that is comparable to the stop-the-world mark and sweep algorithm used in the original JVM.


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
Azatchi, H. and Petrank, E. 2003. Integrating generations with advanced reference counting garbage collectors. In International Conference on Compiler Construction (CC'2003). Lecture Notes in Computer Science, vol. 2622. Springer, Berlin, Germany, 185--199.
5
 
6
7
8
9
10
11
 
12
Chikayama, T. and Kimura, Y. 1987. Multiple reference management in Flat GHC. In 4th International Conference on Logic Programming. MIT Press, Cambridge, MA, 276--293.
13
 
14
 
15
DeTreville, J. 1990. Experience with concurrent garbage collectors for Modula-2+. Tech. rep. 64. DEC Systems Research Center, Palo Alto, CA.
16
17
18
19
 
20
Domani, T., Kolodner, E. K., Lewis, E., Salant, E. E., Barabash, K., Lahan, I., Petrank, E., Yanover, I., and Levanoni, Y. 2000. Implementing an on-the-fly garbage collector for Java. See Hosking {2000}, 155--166.
21
 
22
Flood, C., Detlefs, D., Shavit, N., and Zhang, C. 2001. Parallel garbage collection for shared memory multiprocessors. In USENIX Java Virtual Machine Research and Technology Symposium (JVM '01, Monterey, CA). USENIX, Berkeley, CA.
23
 
24
25
 
26
Herlihy, M. and Moss, J. E. B. 1990. Non-blocking garbage collection for multiprocessors. Tech. rep. CRL 90/9. DEC Cambridge Research Laboratory, Cambridge, MA.
27
 
28
Hosking, T., Ed. 2000. ISMM 2000 Proceedings of the Second International Symposium on Memory Management. ACM Press, New York, NY.
 
29
Hudson, R. L. and Moss, J. E. B. 2003. Copying garbage collection without stopping the world. Concurr. Computat.: Pract. Exp. 15, 3--5, 223--261.
 
30
 
31
Kolodner, E. K. and Petrank, E. 2004. Parallel copying garbage collection using delayed allocation. Parall. Process. Lett. 14, 2. To appear.
32
 
33
Lins, R. D. and Vasques, M. A. 1991. A comparative study of algorithms for cyclic reference counting. Tech. rep. 92. Computing Laboratory, The University of Kent at Canterbury. Canterbury, U.K.
34
 
35
 
36
OOPSLA. 2003. Proceedings of the 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM Press, New York, NY.
37
38
 
39
 
40
Plakal, M. and Fischer, C. N. 2000. Concurrent garbage collection using program slices on multithreaded processors. See Hosking {2000}, 94--100.
 
41
Printezis, T. and Detlefs, D. 2000. A generational mostly-concurrent garbage collector. See Hosking {2000}, 143--154.
 
42
43
 
44
 
45
SPEC Benchmarks. 2000. Standard Performance Evaluation Corporation. Available online at http://www.spec.org/.
46
47
 
48
49
 
50
 
51
 
52
Zorn, B. 1990. Barrier methods for garbage collection. Tech. rep. CU-CS-494-90. University of Colorado, Boulder, CO.


Collaborative Colleagues:
Yossi Levanoni: colleagues
Erez Petrank: colleagues