Actionscript 3 AS3/Flex性能-新ArrayList与ArrayList.removeAll()的比较

Actionscript 3 AS3/Flex性能-新ArrayList与ArrayList.removeAll()的比较,actionscript-3,apache-flex,mobile,flex4,Actionscript 3,Apache Flex,Mobile,Flex4,实际上什么更快?只需创建一个新的ArrayList/ArrayCollection,还是重新使用现有的ArrayList/ArrayCollection并删除其元素 我正在为性能一直是个问题的手机开发,所以我追求的是最快的方法。关于清除ArrayList/ArrayCollection的优化。显然,对于大数据集,设置mycollection.source=new Array()要比设置mycollection.removeAll()快得多,因为removeAll可以确保删除所有事件侦听器 在这种

实际上什么更快?只需创建一个新的ArrayList/ArrayCollection,还是重新使用现有的ArrayList/ArrayCollection并删除其元素

我正在为性能一直是个问题的手机开发,所以我追求的是最快的方法。

关于清除ArrayList/ArrayCollection的优化。显然,对于大数据集,设置mycollection.source=new Array()要比设置mycollection.removeAll()快得多,因为removeAll可以确保删除所有事件侦听器


在这种情况下,新的ArrayList很可能会击败ArrayList.removeAll(),但新的源数组可能是更好的选择,因为它对绑定/侦听器的影响应该更小。

更快的是
mycollection.source=[]
(与mycollection.source=new Array()相反)

另一种选择是使用链表和对象池。对象池允许对象重新写入其属性,而不是删除对象并创建新对象。如果将它们保存在链表中而不是数组中,则循环它们的速度要快得多。因此,如果你只想循环一堆对象,可以使用链表,但是如果你需要进行任何排序,那么数组和向量会更快


另一个问题是内存使用。不仅仅是为了让应用程序运行的内存更小,而且声明的对象越多,垃圾收集器在清理时需要做的工作就越多。

有趣。我的数据集实际上很小(大部分是