Apache flex 如何使Flex/ActionScript 3对象符合垃圾收集的条件?

Apache flex 如何使Flex/ActionScript 3对象符合垃圾收集的条件?,apache-flex,actionscript-3,garbage-collection,Apache Flex,Actionscript 3,Garbage Collection,如何使Flex/ActionScript 3对象符合垃圾收集的条件?什么是经验法则? ... 如果在其他地方回答了此问题,则表示歉意。有关垃圾收集器的信息 垃圾收集器的更多信息 更多信息基本上,您需要删除所有对象事件侦听器,并删除对它的所有引用,使其完全不可用于应用程序的其余部分 删除事件监听器对于*.removeEventListenerevent类型和函数来说是相当主动的,要删除引用,请使用deletevarName 执行上述操作在大多数情况下都会起作用,但在某些情况下,这还不够,为了真正利

如何使Flex/ActionScript 3对象符合垃圾收集的条件?什么是经验法则?
... 如果在其他地方回答了此问题,则表示歉意。

有关垃圾收集器的信息


垃圾收集器的更多信息


更多信息基本上,您需要删除所有对象事件侦听器,并删除对它的所有引用,使其完全不可用于应用程序的其余部分

删除事件监听器对于*.removeEventListenerevent类型和函数来说是相当主动的,要删除引用,请使用deletevarName

执行上述操作在大多数情况下都会起作用,但在某些情况下,这还不够,为了真正利用garbace collection,您需要在代码的所有领域中纳入支持实践,而不仅仅是在您希望删除某些内容时


zombiegx在查找更多信息时发布了您的两大资产。

基本上,您需要删除所有对象事件侦听器,并删除对它的所有引用,使其完全不可用于应用程序的其余部分

删除事件监听器对于*.removeEventListenerevent类型和函数来说是相当主动的,要删除引用,请使用deletevarName

执行上述操作在大多数情况下都会起作用,但在某些情况下,这还不够,为了真正利用garbace collection,您需要在代码的所有领域中纳入支持实践,而不仅仅是在您希望删除某些内容时

zombiegx在寻找更多信息时发布了您的两大资产。

这是我找到的关于垃圾收集的最好的文档。简而言之,VM2使用了一种称为标记扫描的技术。它基本上像树一样遍历应用程序的每个对象并标记它们。任何不再标记的对象都可以解除分配。这个过程发生在多个帧上,而不是一次全部发生

因此,对于符合垃圾收集条件的对象,不能有任何对它的引用,例如,必须将其从显示列表中删除,不能有其他对象持有引用

需要注意的一件事是弱引用。例如,字典对象可以通过传入布尔值来使用弱引用。这意味着,当一个对象被放置在一个已设置为使用弱引用的字典中时,它将不被视为引用,因此如果没有对它的其他引用,它将有资格进行垃圾收集

这是我找到的关于垃圾收集的最好的文档。简而言之,VM2使用了一种称为标记扫描的技术。它基本上像树一样遍历应用程序的每个对象并标记它们。任何不再标记的对象都可以解除分配。这个过程发生在多个帧上,而不是一次全部发生

因此,对于符合垃圾收集条件的对象,不能有任何对它的引用,例如,必须将其从显示列表中删除,不能有其他对象持有引用


需要注意的一件事是弱引用。例如,字典对象可以通过传入布尔值来使用弱引用。这意味着,当一个对象被放置在一个已设置为使用弱引用的字典中时,它将不被视为引用,因此如果没有对它的其他引用,它将有资格进行垃圾收集。这将告诉您有关FlashPlayer垃圾收集器的所有需要了解的信息,并向您展示一系列提示。每个使用as3的人都应该阅读它

请明确阅读以下内容:。这将告诉您有关FlashPlayer垃圾收集器的所有需要了解的信息,并向您展示一系列提示。每个使用as3的人都应该阅读它

关于它的大部分信息都包含在上面列出的博客文章中,但基本分类如下:

删除所有对象引用。这包括删除事件侦听器或使用弱引用,如上所述,并确保相关对象不在任何集合对象中 将原始对象句柄设置为null,以帮助垃圾收集器实现引用不再处于活动状态 等等或者使用上面链接的Grant Skinner技巧尝试快速强制垃圾收集。
关于它的大部分信息都包含在上面列出的博客文章中,但基本分类如下:

删除所有对象引用。这包括删除事件侦听器或使用弱引用,如上所述,并确保相关对象不在任何集合对象中 将原始对象句柄设置为null,以帮助垃圾收集器实现引用不再处于活动状态 等等或者使用上面链接的Grant Skinner技巧尝试快速强制垃圾收集。
不要用那个黑客来强制垃圾收集——根据格兰特的建议:是的——我在一次演讲中包括了那个黑客
几年前在360 Flex,那里的Adobe Flex团队成员没有那么热情。不要用这种黑客手段来强制垃圾收集——根据赠款建议:是的——几年前我在360 Flex的一次演讲中提到了这种黑客行为,那里的Adobe Flex团队成员没有那么热情。