我阅读了一些关于ActionScript弱引用的文章。有两种类型。
Dictionary
课程。EventDispatcher
上课。当我删除最后一个强引用时,我预计弱引用对象会立即消失 。 (无论GC的行为如何)但这些技巧并不像那样。仅弱引用的对象仍然存在一段时间,并且在下一个GC时间看起来消失。删除所有强引用并不会使弱引用对象从对象图中消失。 (我知道它不会被立即删除)
我错了或只是ActionScript使用不同的行为?
答案 0 :(得分:0)
是的,所有弱引用都意味着GC不会将其视为对象的引用 - 引用计数是GC知道对象仍在使用的方式之一。在回收内存之前,您仍然需要运行垃圾收集。
如果您想了解垃圾收集的工作原理,请查看:http://divillysausages.com/blog/tracking_memory_leaks_in_as3(我自己的网站)或:http://jpauclair.net/2009/12/23/tamarin-part-iii-current-garbage-collector-in-flash-10-0/(深入探讨)