1

我正在构建一个 Air 应用程序,由于动画师的工作流程,它需要加载大量外部swf文件。

我在启动过程中通过 FileStream / Loader Objects 将它们全部加载,然后将它们存储在一个对象中以供进一步使用。

在加载它们的那一刻,我使用gotoAndStop(1)命令使它们停止循环(原始文件没有任何脚本)。

在加载过程之后,我可以看到系统内存缓慢但持续上升。当我使用System.gc()命令手动调用垃圾收集时,内存再次被清除。

如果我让应用程序运行几个小时,垃圾收集器似乎没有运行。

任何想法可能是什么问题?还是我应该忘记它,只是偶尔System.gc()手动运行?

非常感谢!

4

1 回答 1

2

垃圾收集器只会在需要时运行,所以它很可能会运行很长时间(特别是如果你有很多可用的 RAM)。

重要的是内存在运行时被清除。这告诉我你没有泄漏,因为它可以被清除。

另外,您如何测量系统内存?如果您通过任务管理器执行此操作,那么这些数字并不是真正值得依赖的。

我推荐Process Explorer。改为监视“私人字节”列。

于 2013-09-08T10:10:08.640 回答