Affiliation:
1. IBM T.J. Watson Research Center, Yorktown Heights, NY
Abstract
Now that the use of garbage collection in languages like Java is becoming widely accepted due to the safety and software engineering benefits it provides, there is significant interest in applying garbage collection to hard real-time systems. Past approaches have generally suffered from one of two major flaws: either they were not provably real-time, or they imposed large space overheads to meet the real-time bounds.Our previous work [3] presented the Metronome, a mostly non-copying real-time collector. The Metronome achieves worst-case pause times of 6 milliseconds while maintaining consistent mutator CPU utilization rates of 50% with only 1.5-2.1 times the maximum heap space required by the application, which is comparable with space requirements for stop-the-world collectors.However, that algorithm assumed a constant collection rate, ignored program-dependent characteristics, and lacked a precise specification for when to trigger collection or how much defragmentation to perform. This paper refines the model by taking into account program properties such as pointer density, average object size, and locality of object size. This allows us to bound both the time for collection and consequently the space overhead required much more tightly. We show experimentally that most parameters usually are not subject to large variation, indicating that a small number of parameters will be sufficient to predict the time and space requirements accurately.Our previous work also did not present the details of our approach to avoiding and undoing fragmentation. In this paper we present a more detailed analysis of fragmentation than in previous work, and show how our collector is able to bound fragmentation to acceptable limits.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
22 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Preserving Addressability Upon GC-Triggered Data Movements on Non-Volatile Memory;ACM Transactions on Architecture and Code Optimization;2022-03-24
2. Integrated Hardware Garbage Collection;ACM Transactions on Embedded Computing Systems;2021-07
3. Fusuma: double-ended threaded compaction;Proceedings of the 2021 ACM SIGPLAN International Symposium on Memory Management;2021-06-22
4. Real-time MLton: A Standard ML runtime for real-time functional programs;Journal of Functional Programming;2021
5. RTMLton: An SML Runtime for Real-Time Systems;Practical Aspects of Declarative Languages;2020