【发布时间】:2013-04-09 15:37:51
【问题描述】:
我在一篇关于 Poly/ML 中堆大小调整的论文中读到了以下内容。但我不明白堆的大小是如何调整的?谁能详细解释一下?
在每次主要 GC(垃圾收集)结束时,adjustHeapSize() 方法被调用。此方法动态改变堆大小,因此 有特定数量的可用空间。也就是说, 假设成熟空间紧随其后包含 l MB 的实时数据 一次 GC,然后 adjustHeapSize() 将成熟空间大小变为 K +l MB, 其中 K 是预先计算的常数。 K 是 gc.cpp 中的 majorGCFree 静态变量,设置为 Poly/ML 运行时开始执行时的成熟空间。
我了解每次 GC 后都有一定数量的可用空间。但是如何获得堆大小的下一个计算值?什么是 K 以及如何计算 K?为什么要设置为 K + l?
【问题讨论】: