我非常感谢 Robotlegs,但最近我遇到了一个 GC 问题。我只是将引用设置为 null 来处理上下文对象失败。在 FB 配置文件工具的帮助下,我发现上下文对象似乎是一个“GC Root”。为了弄清楚这一点,我编写了一个简单的类,它创建了一个上下文 obj 并使其无法访问。这是该类的详细信息:
public class MemoryLeak extends Sprite{
public function MemoryLeak()
{
makeAndDrop();
}
public function makeAndDrop():void{
var _context = new Context(this);
_context = null;
}
}
当我运行这个类时,我希望它被 GC 处理,但它不起作用(大多数时候,不是每次)。配置文件工具告诉我这个实例是一个 GCRoot。我读过一些关于 GC 的文章,但很少有人提到 GCRoot 本身。谁能告诉我为什么,非常感谢!
PS:我尝试在 makeAndDrop() 之后调用 System.gc() 两次,但没有成功。事实上,我对“是 GCRoot”问题(由 fb 配置文件暗示)更感兴趣,如果你告诉我它可能会有所帮助。