有没有一种GC算法可以利用类型信息来实现增量收集、优化收集、并行收集或其他好的功能呢?
通过类型信息,我指的是真正的语义。让我举个例子:假设我们有一个面向对象的类,其中有维护列表的方法,隐藏了表示方式。当对象变得不可达时,收集器只需运行列表并删除所有节点。它知道它们现在都是不可达的,因为封装。它还知道没有必要对节点进行指针的普通扫描,因为它知道所有节点都是相同类型。
显然,这是一个特殊情况,在C++中很容易处理。真正的问题是是否有一种方法来分析程序中使用的类型,并指导收集器利用所得到的信息。我想你可以称之为“类型导向垃圾收集器”。