我非常欣賞Robotlegs,但最近出現了GC問題。我沒有通過設置引用null來處理上下文對象。藉助於FB profile工具,我發現上下文對象看起來像是一個「GC Root」。 要搞清楚,我WIRTE一個簡單的類,它創建了一個背景OBJ,讓它unreachable.Here是這個類的細節:爲什麼Context成爲GCRoot?
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配置文件暗示),如果你告訴我這個問題可能會有所幫助。
GC並不總是運行(例如,如果有足夠的備用內存)和RL使用可能影響GC的弱聽衆? – 2012-12-20 19:12:06
將此上下文作爲模塊加載嗎?因爲我看不到爲什麼會將其標記爲GCRoot的另一個原因。無論如何,它有時候會被釋放,有時甚至不會,這與自動垃圾收集有關,如果應用程序有足夠的空閒內存,對象可以在內存中逗留一段時間。 – Creynders
http://stackoverflow.com/questions/14000712/why-is-it-a-bug-of-flash-builder-or-something – ForbetterCoder