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

Accurate garbage collection in uncooperative environments revisited

Published: 01 August 2009 Publication History

Abstract

Implementing a concurrent programming language such as Java by means of a translator to an existing language is attractive as it provides portability over all platforms supported by the host language and reduces development time—as many low-level tasks can be delegated to the host compiler. The C and C++ programming languages are popular choices for many language implementations due to the availability of efficient compilers on a wide range of platforms. For garbage-collected languages, however, they are not a perfect match as no support is provided for accurately discovering pointers to heap-allocated data on thread stacks. We evaluate several previously published techniques and propose a new mechanism, lazy pointer stacks, for performing accurate garbage collection in such uncooperative environments. We implemented the new technique in the Ovm Java virtual machine with our own Java-to-C-C++ compiler using GCC as a back-end compiler. Our extensive experimental results confirm that lazy pointer stacks outperform existing approaches: we provide a speedup of 4.5% over Henderson's accurate collector with a 17% increase in code size. Accurate collection is essential in the context of real-time systems, we thus validate our approach with the implementation of a real-time concurrent garbage collection algorithm. Copyright © 2009 John Wiley & Sons, Ltd.
A preliminary version of this work was presented at the 16th International Conference on Compiler Construction (CC 2007), part of the Joint European Conferences on Theory and Practice of Software (ETAPS 2007), March 26–30, 2007, Braga, Portugal.

Cited By

View all
  • (2019)Reliable and fast DWARF-based stack unwindingProceedings of the ACM on Programming Languages10.1145/33605723:OOPSLA(1-24)Online publication date: 10-Oct-2019
  • (2018)PalleneProceedings of the XXII Brazilian Symposium on Programming Languages10.1145/3264637.3264640(19-26)Online publication date: 20-Sep-2018
  • (2018)Developing a Holistic Understanding of Systems and Algorithms through Research PapersProceedings of the 2017 ITiCSE Conference on Working Group Reports10.1145/3174781.3174786(86-104)Online publication date: 30-Jan-2018
  • Show More Cited By
  1. Accurate garbage collection in uncooperative environments revisited

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image Concurrency and Computation: Practice & Experience
    Concurrency and Computation: Practice & Experience  Volume 21, Issue 12
    August 2009
    142 pages
    ISSN:1532-0626
    EISSN:1532-0634
    Issue’s Table of Contents

    Publisher

    John Wiley and Sons Ltd.

    United Kingdom

    Publication History

    Published: 01 August 2009

    Author Tags

    1. Java
    2. compilers
    3. garbage collection
    4. programming languages
    5. runtime systems

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0
    Reflects downloads up to 20 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2019)Reliable and fast DWARF-based stack unwindingProceedings of the ACM on Programming Languages10.1145/33605723:OOPSLA(1-24)Online publication date: 10-Oct-2019
    • (2018)PalleneProceedings of the XXII Brazilian Symposium on Programming Languages10.1145/3264637.3264640(19-26)Online publication date: 20-Sep-2018
    • (2018)Developing a Holistic Understanding of Systems and Algorithms through Research PapersProceedings of the 2017 ITiCSE Conference on Working Group Reports10.1145/3174781.3174786(86-104)Online publication date: 30-Jan-2018
    • (2018)Verified compilation of linearizable data structuresProceedings of the 33rd Annual ACM Symposium on Applied Computing10.1145/3167132.3167333(1881-1890)Online publication date: 9-Apr-2018
    • (2017)Improving Timeliness and Visibility in Publishing Software Engineering ResearchIEEE Transactions on Software Engineering10.1109/TSE.2017.266391843:3(205-206)Online publication date: 1-Mar-2017
    • (2017)Automating Live Update for Generic Server ProgramsIEEE Transactions on Software Engineering10.1109/TSE.2016.258406643:3(207-225)Online publication date: 1-Mar-2017
    • (2015)Novel Designs for Memory Checkers Using Semantics and Digital Sequential CircuitsProceedings, Part IV, of the 15th International Conference on Computational Science and Its Applications -- ICCSA 2015 - Volume 915810.1007/978-3-319-21410-8_46(597-611)Online publication date: 22-Jun-2015
    • (2014)Fast conservative garbage collectionACM SIGPLAN Notices10.1145/2714064.266019849:10(121-139)Online publication date: 15-Oct-2014
    • (2014)Mutable checkpoint-restartProceedings of the 15th International Middleware Conference10.1145/2663165.2663328(133-144)Online publication date: 8-Dec-2014
    • (2014)Fast conservative garbage collectionProceedings of the 2014 ACM International Conference on Object Oriented Programming Systems Languages & Applications10.1145/2660193.2660198(121-139)Online publication date: 15-Oct-2014
    • Show More Cited By

    View Options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media