昨天玩游戏时(Balloons Tower Defense 3)我注意到游戏开始随着时间的推移而减速,然后随机加速。查看每次我假设它的内存使用量下降是GC运行。
作为一个合理的问题,无论如何都要强制Flash从GC到GC?也许你可以运行一个插件或命令来执行此操作?我知道你can do System.gc()但是这个游戏不是我的,所以我不能用“点击此处GC”按钮来修改源代码。
答案 0 :(得分:4)
没有办法,而且真的不是你需要的东西。强制GC运行实际上会使事情变得更糟。你看到的那些随机减速可能实际上已经是GC运行了。
消除这些减速的方法是以一种永远不会在更新函数内分配或释放内存的方式进行编程。预先创建所需的所有引用,永远不会使任何内容(因为它可用于收集),并始终在主游戏循环中重用对象。游戏结束后有足够的时间进行清理或重新实例化。
答案 1 :(得分:1)
据我所知,没有办法在动作脚本中强制GC。不是来自代码本身或周围的浏览器。
*编辑*
好的,有办法 - 但是你不应该使用(而且不能在flashplayer的发行版中)。更多,在这里: Force Garbage Collection in AS3?