我正在构建一个Air应用程序,由于动画师的工作流程,需要加载大量外部swf
文件。
我在启动过程中通过FileStream / Loader对象加载它们,然后将它们存储在一个对象中以供进一步使用。
它们加载的瞬间,我使用gotoAndStop(1)
命令使它们停止循环(原始文件没有任何脚本)。
在加载过程之后,我可以看到系统内存缓慢但始终如一。
当我使用System.gc()
命令手动调用垃圾收集时,
内存再次被清除。
如果我让应用程序运行几个小时,似乎垃圾收集器不会运行。
任何想法可能是什么问题?或者我应该忘记它并偶尔偶尔运行System.gc()
?
非常感谢!
答案 0 :(得分:2)
垃圾收集器只会在需要时运行,因此很可能会在运行之前耗费很长时间(特别是如果你有大量的RAM可用)。
重要的是内存在运行时被清除。这告诉我你没有泄漏,因为它可以被清除。
另外,您如何测量系统内存?如果您通过任务管理器进行操作,那么这些数字并不是真正依赖的。
我建议Process Explorer。改为监控“私人字节”列。