[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
article

An on-the-fly mark and sweep garbage collector based on sliding views

Published: 26 October 2003 Publication History

Abstract

With concurrent and garbage collected languages like Java and C# becoming popular, the need for a suitable non-intrusive, efficient, and concurrent multiprocessor garbage collector has become acute. We propose a novel mark and sweep on-the-fly algorithm based on the sliding views mechanism of Levanoni and Petrank. We have implemented our collector on the Jikes Java Virtual Machine running on a Netfinity multiprocessor and compared it to the concurrent algorithm and to the stop-the-world collector supplied with Jikes JVM. The maximum pause time that we measured with our benchmarks over all runs was 2ms. In all runs, the pause times were smaller than those of the stop-the-world collector by two orders of magnitude and they were also always shorter than the pauses of the Jikes concurrent collector. Throughput measurements of the new garbage collector show that it outperforms the Jikes concurrent collector by up to 60%. As expected, the stop-the-world does better than the on-the-fly collectors with results showing about 10% difference.On top of being an effective mark and sweep on-the-fly collector standing on its own, our collector may also be used as a backup collector (collecting cyclic data structures) for the Levanoni-Petrank reference counting collector. These two algorithms perfectly fit sharing the same allocator, a similar data structure, and a similar JVM interface.

References

[1]
Bowen Alpern, Dick Attanasio, John J. Barton, Anthony Cocchi, Derek Lieber, Stephen Smith, and Ton Ngo. Implementing Jalapeno in Java. ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, 1999.]]
[2]
D. Bacon, C. Attanasio, H. Lee, V. Rajan, and S. Smith. Java without the coffee breaks: A nonintrusive multiprocessor garbage collector. The ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), Snowbird, Utah, June 20-22 2001.]]
[3]
Mordechai Ben-Ari. On-the-fly garbage collection: New algorithms inspired by program proofs. In M. Nielsen and E. M. Schmidt, editors, Automata, languages and programming. Ninth colloquium (Aarhus, Denmark), pages 14-22, New York, July 12-16 1982. Springer-Verlag.]]
[4]
Mordechai Ben-Ari. Algorithms for on-the-fly garbage collection. ACM Transactions on Programming Languages and Systems, 6(3):333--344, July 1984.]]
[5]
J. DeTreville. Experience with Concurrent Garbage Collector for Mudula-2+. Technical Report 64, DEC Systems Research Center, Palo Alto, CA, November 1990.]]
[6]
Hans-J. Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. In SIGPLAN Symposium on Programming Language Design and Implementation, pages 157--164, June 1991.]]
[7]
Trishul M. Chilimbi and James R. Larus. Using generational garbage collection to implement cache-conscious data placement. In Proceedings of the First International Symposium on Memory Management, volume 34(3) of ACM SIGPLAN Notices, October 1998, pages 37--48.]]
[8]
Sylvia Dieckmann and Urs Holzle. A Study of the Allocation Behavior of the SPECjvm98 Java Benchmarks. Proceedings of the European Conference on Object-Oriented Programming (ECOOP'99), Lecture Notes on Computer Science, Springer Verlag, June 1999.]]
[9]
Edsgar W. Dijkstra, Leslie Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM, 21(11):965--975, November 1978.]]
[10]
Damien Doligez and Georges Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In POPL 1994.]]
[11]
Damien Doligez and Xavier Leroy. A concurrent generational garbage collector for a multi-threaded implementation of ML. In POPL 1993.]]
[12]
Tamar Domani, Elliot K. Kolodner, and Erez Petrank. A generational on-the-fly garbage collector for java. In Proceedings of the SIGPLAN 2000 Conference on Programming Language Design and Implementation, pages 274--284, 2000.]]
[13]
Tamar Domani, Elliot K. Kolodner, Ethan Lewis, Elliot E. Salant, Katherine Barabash, Itai Lahan, Yossi Levanoni, Erez Petrank, and Igor Yanover. Implementing an On-the-fly Garbage Collector for Java. The 2000 International Symposium on Memory Management, October, 2000.]]
[14]
Shinichi Furusou, Satoshi Matsuoka, and Akinori Yonezawa. Parallel conservative garbage collection with fast allocation. In Paul~R. Wilson and Barry Hayes, editors, OOPSLA/ECOOP '91 Workshop on Garbage Collection in Object-Oriented Systems, 1991.]]
[15]
David Gries. An exercise in proving parallel programs correct. Communications of the ACM, 20(12):921--930, December 1977.]]
[16]
Paul Hudak and Robert M. Keller. Garbage Collection and Task Deletion in Distributed Systems. In ACM Symposium on Lisp and Functional Programming, pp. 168--178, Pittsburgh, PA, August 1982.]]
[17]
Richard L. Hudson and J. Eliot B. Moss. Sapphire: Copying GC Without Stopping The World, Joint ACM Java Grande --- ISCOPE 2001 Conference.]]
[18]
L. Huelsbergen and P. Winterbottom. Very Concurrent Mark-&-Sweep Garbage Collection without Fine-Grain Synchronization. In Proceedings of the 1998 International Symposium on Memory Management, pages 50--54, 1998.]]
[19]
Richard E. Jones and Rafael Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, July 1996.]]
[20]
H. T. Kung and S. W. Song. An efficient parallel garbage collection system and its correctness proof. In IEEE Symposium on Foundations of Computer Science, pages 120--131. IEEE Press, 1977.]]
[21]
L. Lamport. Garbage collection with multiple processes: an exercise in parallelism. In Proceedings of the 1976 International Conference on Parallel Processing, pages 50--54, 1976.]]
[22]
Yossi Levanoni and Erez Petrank. An on-the-fly reference counting garbage collector for Java. In OOPSLA'01 ACM Conference on Object-Oriented Systems, Languages and Applications, volume 36(10) of ACM SIGPLAN Notices, pages 367--380, 2001.]]
[23]
John McCarthy. Recursive functions of symbolic expressions and their computation by machine. Communications of the ACM, 3(4):184--195, 1960.]]
[24]
Yoav Ossia, Ori Ben-Yitzhak, Irit Goft, Elliot K. Kolodner, Victor Leikehman, and Avi Owshanko. A parallel, incremental and concurrent GC for servers. In Proceeding of the ACM SIGPLAN 2002 Conference on Programming language design and implementation, pages 129--140, 2002.]]
[25]
James W. O'Toole and Scott M. Nettles. Concurrent replicating garbage collection. Also LFP94 and OOPSLA93 Workshop on Memory Management and Garbage Collection.]]
[26]
Tony Printezis and David Detlefs. A Generational Mostly-Concurrent Garbage Collector. In International Symposium on Memory Management (ISMM '00), volume 36(1) of ACM SIGPLAN Notices, January 2001.]]
[27]
Guy L. Steele. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495--508, September 1975.]]
[28]
Guy L. Steele. Corrigendum: Multiprocessing compactifying garbage collection. Communications of the ACM, 19(6):354, June 1976.]]
[29]
Standard Performance Evaluation Corporation, http://www.spec.org/]]
[30]
Paul R. Wilson. Uniprocessor garbage collection techniques. Technical report, University of Texas, January 1994. Expanded version of the IWMM92 paper.]]
[31]
Taichi Yuasa. Real-time garbage collection on general-purpose machines. Journal of Software and Systems, 11(3):181--198, 1990.]]

Cited By

View all
  • (2016)A fully concurrent garbage collector for functional programs on multicore processorsACM SIGPLAN Notices10.1145/3022670.295194451:9(421-433)Online publication date: 4-Sep-2016
  • (2016)A fully concurrent garbage collector for functional programs on multicore processorsProceedings of the 21st ACM SIGPLAN International Conference on Functional Programming10.1145/2951913.2951944(421-433)Online publication date: 4-Sep-2016
  • (2014)Reference object processing in on-the-fly garbage collectionACM SIGPLAN Notices10.1145/2775049.260299149:11(59-69)Online publication date: 12-Jun-2014
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 38, Issue 11
Special Issue: Proceedings of the OOPSLA '03 conference
November 2003
417 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/949343
Issue’s Table of Contents
  • cover image ACM Conferences
    OOPSLA '03: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
    October 2003
    430 pages
    ISBN:1581137125
    DOI:10.1145/949305
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 26 October 2003
Published in SIGPLAN Volume 38, Issue 11

Check for updates

Author Tags

  1. concurrent garbage collection
  2. garbage collection
  3. memory management
  4. on-the-fly garbage collection
  5. runtime systems

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)12
  • Downloads (Last 6 weeks)1
Reflects downloads up to 14 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2016)A fully concurrent garbage collector for functional programs on multicore processorsACM SIGPLAN Notices10.1145/3022670.295194451:9(421-433)Online publication date: 4-Sep-2016
  • (2016)A fully concurrent garbage collector for functional programs on multicore processorsProceedings of the 21st ACM SIGPLAN International Conference on Functional Programming10.1145/2951913.2951944(421-433)Online publication date: 4-Sep-2016
  • (2014)Reference object processing in on-the-fly garbage collectionACM SIGPLAN Notices10.1145/2775049.260299149:11(59-69)Online publication date: 12-Jun-2014
  • (2014)Reference object processing in on-the-fly garbage collectionProceedings of the 2014 international symposium on Memory management10.1145/2602988.2602991(59-69)Online publication date: 12-Jun-2014
  • (2014)Design and Implementation of a Mobile Actor Platform for Wireless Sensor NetworksConcurrent Objects and Beyond10.1007/978-3-662-44471-9_13(276-316)Online publication date: 2014
  • (2012)Scalable concurrent and parallel markACM SIGPLAN Notices10.1145/2426642.225900647:11(61-72)Online publication date: 15-Jun-2012
  • (2012)Scalable concurrent and parallel markProceedings of the 2012 international symposium on Memory Management10.1145/2258996.2259006(61-72)Online publication date: 15-Jun-2012
  • (2012)A Fully Concurrent Garbage CollectorRecent Advances in Computer Science and Information Engineering10.1007/978-3-642-25789-6_50(343-363)Online publication date: 24-Jan-2012
  • (2006)Portable, mostly-concurrent, mostly-copying garbage collection for multi-processorsProceedings of the 5th international symposium on Memory management10.1145/1133956.1133963(40-51)Online publication date: 10-Jun-2006
  • (2006)An on-the-fly reference-counting garbage collector for javaACM Transactions on Programming Languages and Systems10.1145/1111596.111159728:1(1-69)Online publication date: 1-Jan-2006
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media