当flex数组集合处理大量数据时,例如20000个新引用的对象,flex客户端浏览器中的内存将增加20MB。这多余的20MB独立于对象中定义的变量。下面是一个详细的例子。为大数据消耗大量内存的Flex
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和array中,但问题仍然存在。有人可以解释这个多余的内存是由Flex消费的吗?
你为什么称它为“泄漏”? – ethrbunny 2013-02-24 13:19:14