Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/949305.949336acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Ulterior reference counting: fast garbage collection without a long wait

Published: 26 October 2003 Publication History
  • Get Citation Alerts
  • Abstract

    General purpose garbage collectors have yet to combine short pause times with high throughput. For example, generational collectors can achieve high throughput. They have modest average pause times, but occasionally collect the whole heap and consequently incur long pauses. At the other extreme, concurrent collectors, including reference counting, attain short pause times but with significant performance penalties. This paper introduces a new hybrid collector that combines copying generational collection for the young objects and reference counting the old objects to achieve both goals. It restricts copying and reference counting to the object demographics for which they perform well. Key to our algorithm is a generalization of deferred reference counting we call Ulterior Reference Counting. Ulterior reference counting safely ignores mutations to select heap objects. We compare a generational reference counting hybrid with pure reference counting, pure mark-sweep, and hybrid generational mark-sweep collectors. This new collector combines excellent throughput, matching a high performance generational mark-sweep hybrid, with low maximum pause times.

    References

    [1]
    B. Alpern, C. R. Attanasio, A. Cocchi, D. Lieber, S. Smith, T. Ngo, J. J. Barton, S. F. Hummel, J. C. Sheperd, and M. Mergen. Implementing Jalapeño in Java. In Proceedings of the 1999 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications, OOPSLA '99, Denver, Colorado, November 1-5, 1999, volume 34(10) of ACM SIGPLAN Notices, pages 314--324. ACM Press, Oct. 1999.
    [2]
    B. Alpern, D. Attanasio, J. J. Barton, M. G. Burke, P. Cheng, J.-D. Choi, A. Cocchi, S. J. Fink, D. Grove, M. Hind, S. F. Hummel, D. Lieber, V. Litvinov, M. Mergen, T. Ngo, J. R. Russell, V. Sarkar, M. J. Serrano, J. Shepherd, S. Smith, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeño virtual machine. IBM System Journal, 39(1):211--238, February 2000.
    [3]
    A. W. Appel. Simple generational garbage collection and fast allocation. Software Practice and Experience, 19(2):171--183, 1989.
    [4]
    M. Arnold, S. J. Fink, D. Grove, M. Hind, and P. Sweeney. Adaptive optimization in the Jalapeño JVM. In OOPSLA'00 ACM Conference on Object-Oriented Systems, Languages and Applications, Minneapolis, MN, USA, October 15-19, 2000, volume 35(10) of ACM SIGPLAN Notices, pages 47--65. ACM Press, October 2000.
    [5]
    C. R. Attanasio, D. F. Bacon, A. Cocchi, and S. Smith. A comparative evaluation of parallel garbage collectors. In Languages and Compilers for Parallel Computing, 14th International Workshop, LCPC 2001, Cumberland Falls, KY, USA, August 1-3, 2001, Lecture Notes in Computer Science. Springer-Verlag, 2001.
    [6]
    H. Azatchi and E. Petrank. Integrating generations with advanced reference counting garbage collectors. In International Conference on Compiler Construction, Warsaw, Poland, Apr. 2003. To Appear.
    [7]
    D. F. Bacon, C. R. Attanasio, H. B. Lee, V. T. Rajan, and S. Smith. Java without the coffee breaks: A nonintrusive multiprocessor garbage collector. In Proceedings of the ACM SIGPLAN'01 Conference on Programming Languages Design and Implementation (PLDI), Snowbird, Utah, May, 2001, volume 36(5), June 2001.
    [8]
    D. F. Bacon, P. Cheng, and V. T. Rajan. A realtime garbage collector with low overhead and consistent utilization. In POPL 2003: The 30th SIGPLAN-SIGACT Symposium on Principles of Programming Languages, New Orleans, Louisisana, January 15-17, 2003, volume 38(1) of ACM SIGPLAN Notices. ACM Press, Jan. 2003.
    [9]
    D. F. Bacon and V. T. Rajan. Concurrent cycle collection in reference counted systems. In J. L. Knudsen, editor, Proceedings of 15th European Conference on Object-Oriented Programming, ECOOP 2001, Budapest, Hungary, June 18-22, volume 2072 of Lecture Notes in Computer Science, pages 207--235. Springer-Verlag, 2001.
    [10]
    E. D. Berger, B. G. Zorn, and K. S. McKinley. Building high-performance custom and general-purpose memory allocators. In Proceedings of SIGPLAN 2001 Conference on Programming Languages Design and Implementati on, pages 114--124, Salt Lake City, UT, June 2001.
    [11]
    S. M. Blackburn, P. Cheng, and K. S. McKinley. A garbage collection bakeoff in a Java memory management toolkit (JMTk). Technical Report TR-CS-03-02, ANU, Mar. 2003.
    [12]
    S. M. Blackburn, R. E. Jones, K. S. McKinley, and J. E. B. Moss. Beltway: Getting around garbage collection gridlock. In Proceedings of SIGPLAN 2002 Conference on Programming Languages Design and Implementation, PLDI'02, Berlin, June, 2002, volume 37(5) of ACM SIGPLAN Notices. ACM Press, June 2002.
    [13]
    S. M. Blackburn and K. S. McKinley. Fast garbage collection without a long wait. Technical Report TR-CS-02-06, Dept. of Computer Science, Austrailian National University, Nov. 2002.
    [14]
    S. M. Blackburn and K. S. McKinley. In or out? Putting write barriers in their place. In Proceedings of the Third International Symposium on Memory Management, ISMM '02, Berlin, Germany, volume 37 of ACM SIGPLAN Notices. ACM Press, June 2002.
    [15]
    H.-J. Boehm, A. J. Demers, and S. Shenker. Mostly parallel garbage collection. SIGPLAN Notices, 26(6):157--164, 1991.
    [16]
    C. J. Cheney. A non-recursive list compacting algorithm. Communications of the ACM, 13(11):677--8, Nov. 1970.
    [17]
    P. Cheng and G. Belloch. A parallel, real-time garbage collector. In Proceedings of the ACM SIGPLAN'01 Conference on Programming Languages Design and Implementation (PLDI), Snowbird, Utah, May, 2001, volume 36(5) of ACM SIGPLAN Notices, pages 125--136. ACM Press, June 2001.
    [18]
    G. E. Collins. A method for overlapping and erasure of lists. Communications of the ACM, 3(12):655--657, Dec. 1960.
    [19]
    L. P. Deutsch and D. G. Bobrow. An efficient incremental automatic garbage collector. Communications of the ACM, 19(9):522--526, September 1976.
    [20]
    R. L. Hudson and J. E. B. Moss. Incremental garbage collection for mature objects. In Y. Bekkers and J. Cohen, editors, Proceedings of the First International Workshop on Memory Management, IWMM'92, St. Malo, France, Sep, 1992, volume 637 of Lecture Notes in Computer Science. Springer-Verlag, 1992.
    [21]
    R. E. Jones and R. D. Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, July 1996.
    [22]
    D. Lea. A memory allocator. http://gee.cs.oswego.edu/dl/html/malloc.html, 1997.
    [23]
    Y. Levanoni and E. Petrank. An on-the-fly reference counting garbage collector for Java. In ACM Conference Proceedings on Object--Oriented Programming Systems, Languages, and Applications, pages 367--380, Tampa, FL, Oct. 2001.
    [24]
    H. Lieberman and C. E. Hewitt. A real time garbage collector based on the lifetimes of objects. Communications of the ACM, 26(6):419--429, 1983.
    [25]
    E. Petrank. Private communication, July 2003.
    [26]
    T. Printezis and D. Detlefs. A generational mostly-concurrent garbage collector. In Proceedings of the International Symposium On Memory Management (ISMM), Minneapolis. ACM Press, Oct. 2000.
    [27]
    Standard Performance Evaluation Corporation. SPECjvm98 Documentation, release 1.03 edition, March 1999.
    [28]
    Standard Performance Evaluation Corporation. SPECjbb2000 (Java Business Benchmark) Documentation, release 1.01 edition, 2001.
    [29]
    D. Stefanović. Properties of Age-Based Automatic Memory Reclamation Algorithms. PhD thesis, University of Massachusetts, 1999.
    [30]
    D. M. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. ACM SIGPLAN Notices, 19(5):157--167, April 1984.
    [31]
    P. R. Wilson, M. S. Johnstone, M. Neely, and D. Boles. Dynamic storage allocation: A survey and critical review. In H. Baker, editor, Proceedings of International Workshop on Memory Management, IWMM'95, Kinross, Scotland, volume 986 of Lecture Notes in Computer Science. Springer-Verlag, Sept. 1995.

    Cited By

    View all
    • (2024)Garbage Collection for Mostly Serialized HeapsProceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management10.1145/3652024.3665512(1-14)Online publication date: 20-Jun-2024
    • (2024)Being Lazy When It CountsFunctional and Logic Programming10.1007/978-981-97-2300-3_11(188-216)Online publication date: 15-May-2024
    • (2022)Low-latency, high-throughput garbage collectionProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523440(76-91)Online publication date: 9-Jun-2022
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    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
    • 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
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 26 October 2003

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Java
    2. copying
    3. generational hybrid
    4. reference counting
    5. ulterior reference counting

    Qualifiers

    • Article

    Conference

    OOPSLA03
    Sponsor:

    Acceptance Rates

    OOPSLA '03 Paper Acceptance Rate 26 of 147 submissions, 18%;
    Overall Acceptance Rate 268 of 1,244 submissions, 22%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)15
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 09 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Garbage Collection for Mostly Serialized HeapsProceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management10.1145/3652024.3665512(1-14)Online publication date: 20-Jun-2024
    • (2024)Being Lazy When It CountsFunctional and Logic Programming10.1007/978-981-97-2300-3_11(188-216)Online publication date: 15-May-2024
    • (2022)Low-latency, high-throughput garbage collectionProceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3519939.3523440(76-91)Online publication date: 9-Jun-2022
    • (2021)Concurrent deferred reference counting with constant-time overheadProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454060(526-541)Online publication date: 19-Jun-2021
    • (2018)FRC: a high-performance concurrent parallel deferred reference counter for C++ACM SIGPLAN Notices10.1145/3299706.321056953:5(14-28)Online publication date: 18-Jun-2018
    • (2018)Biased reference countingProceedings of the 27th International Conference on Parallel Architectures and Compilation Techniques10.1145/3243176.3243195(1-12)Online publication date: 1-Nov-2018
    • (2018)FRC: a high-performance concurrent parallel deferred reference counter for C++Proceedings of the 2018 ACM SIGPLAN International Symposium on Memory Management10.1145/3210563.3210569(14-28)Online publication date: 18-Jun-2018
    • (2018)ThreadScanACM Transactions on Parallel Computing10.1145/32018974:4(1-18)Online publication date: 1-May-2018
    • (2018)A Study on Garbage Collection Algorithms for Big Data EnvironmentsACM Computing Surveys10.1145/315681851:1(1-35)Online publication date: 10-Jan-2018
    • (2017)Dynamic atomicity: optimizing swift memory managementACM SIGPLAN Notices10.1145/3170472.313384352:11(15-26)Online publication date: 24-Oct-2017
    • Show More Cited By

    View Options

    Get Access

    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