【发布时间】:2013-02-24 12:33:38
【问题描述】:
当使用大量数据(例如 2,00,000 个新引用的对象)处理 flex 数组集合时,flex 客户端浏览器中的内存会激增 20MB。这个多余的 20MB 与对象中定义的变量无关。下面是一个详细的例子。
var list:ArrayCollection = new ArrayCollection;
for(var i:int = 0;i<200000;i++)
{
var obj:Object = new Object;
list.add(obj);
}
在执行上述代码时,flex 客户端浏览器内存增加了 20MB。对于不同的场景,我尝试将动作脚本对象添加到数组集合中。动作脚本对象定义如下。
public class Sample
{
public var id:int;
public var age:int;
public Sample()
{
}
}
在将 200000 个 Sample 类添加到数组集合中时,仍然存在 20MB 内存泄漏。
var list:ArrayCollection = new ArrayCollection;
for(var i:int = 0;i<200000;i++)
{
var obj:Sample = new Sample;
obj.id= i;
onj.age = 20;
list.add(obj);
}
我什至尝试将示例对象添加到 flex arrayList 和数组中,但问题仍然存在。谁能解释一下 flex 在哪里消耗了这些多余的内存?
【问题讨论】:
-
你为什么称它为“泄漏”?
标签: apache-flex memory-management memory-leaks arraycollection