Apache flex AdobeFlex应用程序页面文件使用率飙升!

Apache flex AdobeFlex应用程序页面文件使用率飙升!,apache-flex,actionscript-3,memory,actionscript,flex3,Apache Flex,Actionscript 3,Memory,Actionscript,Flex3,我已经在一个AdobeFlex应用程序上工作了几个月了,该应用程序将连续运行数天(数周!)。然而,我现在看到,在连续运行几天后,它运行的计算机告诉我系统的虚拟内存不足,并且给了我一个关于页面文件使用的错误。一旦我关闭Flex应用程序,页面文件使用量将从1.9GB下降到100MB(或更少)。虽然我在我的应用程序中非常小心,不保留巨大的阵列,但它似乎耗尽了所有的内存而没有释放它 该应用程序会绘制一些图形并绘制许多形状(将“标尺”变大),然后通过将该对象重新声明为另一个“标尺”来消除这些形状 知道为什

我已经在一个AdobeFlex应用程序上工作了几个月了,该应用程序将连续运行数天(数周!)。然而,我现在看到,在连续运行几天后,它运行的计算机告诉我系统的虚拟内存不足,并且给了我一个关于页面文件使用的错误。一旦我关闭Flex应用程序,页面文件使用量将从1.9GB下降到100MB(或更少)。虽然我在我的应用程序中非常小心,不保留巨大的阵列,但它似乎耗尽了所有的内存而没有释放它

该应用程序会绘制一些图形并绘制许多形状(将“标尺”变大),然后通过将该对象重新声明为另一个“标尺”来消除这些形状


知道为什么我的页面文件使用率这么高吗

您很可能有未被删除的EventListener。它们保留对对象的引用并防止对象被垃圾收集。

您可以使用Flex Builder professional中的探查器查看内存使用情况。正如前面提到的另一张海报一样,事件侦听器在这种情况下往往是罪魁祸首,但更一般地说,仅仅因为您认为您正在删除(销毁或删除)一个变量,并不意味着它真的被垃圾收集器处理。如果该变量(或对象)的任何引用(如事件侦听器)仍然存在,则不会收集该引用。档案管理员会指出这些事情。

我听说,把任何东西放在舞台上都会造成内存泄漏。换句话说,您可以尽可能小心地使用代码,但仍然会泄漏内存。据我所知,Adobe尚未对此进行验证。一个好的测试可能是实例化一个形状、一个精灵和一个MovieClip,将它们添加到显示列表中,然后让应用程序运行一夜。如果你最终测试了这个,我很想听到结果