actionscript-3 – AS3 – 什么时候垃圾收集器运行?
道歉,如果这是一个骗局;我找不到它.
我已经阅读并理解了关于AS3垃圾收集器的grant skinner的博客 – 这是我的问题. 假设我写了一些AS3代码,如: statementOne; statementTwo; 垃圾收集器是否有可能在我的两个语句期间或之间运行,或者仅在我的“用户”代码完成并将控制权返回到闪存后运行? 我们有一个有时很慢的A-Star代码块, TIA, 解决方法
这里有很多好的答案,但我认为一些细微之处尚未得到解决.
> Flash播放器实现了两种垃圾收集.一个是引用计数,其中Flash保持对每个对象的传入引用的计数,并且知道当计数达到零时,可以释放对象.第二种方法是标记扫描,其中Flash偶尔会搜索并删除隔离的对象组(其中对象相互引用,但组作为一个整体没有传入引用). 最后,关于您的具体问题:根据我的经验,GC不太可能与您的性能问题有关.在循环期间可能会发生引用计数的GC处理,但通常这是一件好事 – 这种集合非常快,并且可以保持内存使用的可管理性.仔细管理您的参考文献的重点是确保这种GC及时发生. 另一方面,如果在循环期间发生标记/扫描,那肯定会影响您的性能.但这是相对难以辨认和易于测试的.如果您在PC上进行测试并且您的应用程序没有经常爬上数百MB的内存使用量(使用System.totalMemory进行测试),那么您可能根本没有获得任何标记/扫描.如果你有它们,应该很容易验证相关的暂停是否很大,不经常,并且总是伴随着内存使用量的大幅下降.如果这些事情不正确,你可以忽视GC是你问题的一部分. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |