destroy array()

时间:2009-02-12 13:41:11

标签: actionscript-3

如何释放内存并销毁数组,这样就可以了吗

  myarr = null
  myarr = new Array

myarr的所有旧内容现在都从内存中释放出来了吗?

3 个答案:

答案 0 :(得分:1)

假设你没有在另一个变量的另一个变量中有另一个数组引用,那么当GC到达它时,数组内存将被恢复。

答案 1 :(得分:1)

如果没有对该Array对象的更多引用,则它将由垃圾收集(GC)系统收集。所以当你问“myarr的所有旧内容现在从内存中释放出来了吗?”时,答案是可能的。但是您无法控制GC何时使用Actionscript虚拟机运行。

所以说,当没有更多对象的引用时,下次垃圾收集器运行时,它将被收集。

当您处理数组时,事情变得更加复杂。可能会收集Array对象,但这并不意味着也会清除Array引用的对象。 Array引用的对象可能是对这些对象的许多引用之一,例如,系统中可能存在该Array的副本,这意味着每个Array中的每个对象至少存在两个引用。

还要注意事件侦听器会阻止对象被垃圾收集,除非它们是事件侦听器

答案 2 :(得分:-1)

myarr = nothing

无论如何,.Net中的垃圾收集会对此进行排序。这就是你的.NET。