【发布时间】:2012-02-10 11:07:43
【问题描述】:
我正在运行涉及创建树的模拟。 我的树有一个从 2/3 到 7/8 的分支因子。
每次我需要扩展它时,我都会为孩子分配一个数组。 我经常在新树上创建一个分支(通过将根的孩子设置为根),所以我的树的其余部分变成了垃圾。
我想知道让垃圾收集器完成他的工作(我“建议”他在我更改树根时使用 System.gc() 开始收集)或为 TreeNodes 实现我自己的池是否更好,并且当我更改根时,回收所有现在无用的节点。
答案可以理解为:android 垃圾收集器是否经过优化,或者是否比限制对象的创建/销毁更可取,即使这非常消耗?(我需要遍历所有树,并附加每个无用的节点到我的池的堆栈)
我读到 android GC 没有“进化”(它基本上在内存不足时运行。)此外,我不知道是否只是删除对树根的每个引用会让 gc 垃圾收集所有单遍中的树,否则它将仅 gc 节点,然后该节点的子节点在下一遍,依此类推..
【问题讨论】:
标签: java android memory-management garbage-collection tree