Controlling fragmentation and space consumption in the metronome, a real-time garbage collector for Java

Controlling fragmentation and space consumption in the metronome, a real-time garbage collector for Java
复制标题

DOI:
10.1145/780732.780744
复制
发表时间:
2003-07
期刊:
--
影响因子:
--
通讯作者:
D. F. Bacon;P. Cheng;V. T. Rajan
D. F. Bacon;P. Cheng;V. T. Rajan
中科院分区:
其他
文献类型:
--
作者:
D. F. Bacon;P. Cheng;V. T. Rajan

文献摘要

被引文献

相似文献

由于垃圾收集所提供的安全性和软件工程方面的好处,在Java等语言中使用垃圾收集已被广泛接受,因此将垃圾收集应用于硬实时系统引起了人们极大的兴趣。过去的方法通常受到两个主要缺陷之一的影响:要么它们不是可证明的实时,要么它们强加了巨大的空间开销来满足实时限制。我们以前的工作[3]提出了Metronome,一个主要是非复制的实时收集器。Metronome在最坏的情况下实现了6毫秒的暂停时间,同时保持了50%的一致Mutator CPU利用率,而应用程序所需的最大堆空间仅为1.5-2.1倍,这与Stop-the-World收集器的空间要求相当。但是,该算法假设收集率恒定,忽略了程序相关的特征,并且缺乏关于何时触发收集或执行多少碎片整理的精确规范。本文通过考虑指针密度、平均对象大小和对象大小的局部性等程序属性对模型进行了改进。这使我们能够更紧密地限制收集的时间和所需的空间开销。我们的实验表明,大多数参数通常不会有很大的变化,这表明少量的参数将足以准确地预测时间和空间需求。我们之前的工作也没有给出避免和取消碎片的方法的细节。在这篇文章中,我们提供了比以前工作中更详细的碎片分析,并展示了我们的收集器如何能够将碎片绑定到可接受的限度。
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.