2012-03-15 49 views
1

我假設GWT管理垃圾收集,並且能夠防止在應用程序中不再引用任何窗口部件或變量的任何地方的內存接收器(又名泄漏)時的累積。GWT週期性任務/鏈接的垃圾回收

因此,將引用/變量設置爲null是不夠的,因爲該小部件/對象可能被應用程序中的其他位置引用/鏈接。特別是在樹木中,我散佈與樹形結構相關的信息。

如果有人對上述推定有異議,請說出您的想法。

好的,對象集羣相互引用的情況如何,但總體上沒有引用鏈可以將它們跟蹤到任何活動使用的對象/變量。

一個簡單的例子是一個雙鏈表,從我自己的雙鏈表類實例化。或者從我自己寫的一個類中實例化一個循環列表。如果該雙向鏈表或循環列表不再被任何活動的組件/對象/變量引用,該怎麼辦?

GWT gc是否知道如何收集和銷燬這些列表?

如果不是,我應該遵守哪些預防措施或設計模式以避免內存接收器的積累?

回答

2

這是所有垃圾回收框架都知道如何處理的東西 - 雖然我相信GWT依賴於Javascript的GC,而不是它自己的。

如果您檢查this section on Wikipedia,您將會明白爲什麼您所描述的雙鏈表結構將被正確地垃圾回收 - 實質上,未引用的列表將無法從任何根目錄獲得。