2009-11-27 47 views
0

我在程序的压力/性能测试过程中遇到内存分配问题。在测试中,我试图一次又一次地加载/卸载同一组资源。我得到的错误是“错误,#1000,内存不足”。堆栈跟踪大约是URLLoader/onCompleteURLStream/readBytes。我检查了在失败时使用的内存,它小于程序之前使用的最大内存量。我不认为这是由内存泄漏引起的,因为通过时间使用的内存非常一致(在加载资源,释放,分配等时分配)。此外,此问题随机发生。我有点卡住了。有什么建议么?ActionScript的内存问题

回答

2

如果您正在使用Flex Builder,请使用flex分析器更好地了解各种对象正在使用的内存。

0

您还可以使用ProcessExplore for Windows或Mac的活动监视器等简单内容来监视内存消耗情况。如果您所做的只是加载/卸载资源,并且您正在正确管理这些资源的生命周期(即删除侦听器,可用于垃圾收集等),那么您应该看到一个非常一致的峰值/谷值内存图。如果记忆力继续上升,就会发生泄漏。如果您正在加载/卸载的资源是位图,请特别小心,因为位图数据往往是闪存泄漏的主要罪魁祸首。祝你好运!

+0

使用flash的内部报告方式会更好,但不能保证flash一旦完成就会将内存返回到操作系统。 – grapefrukt 2009-11-29 21:22:35

+0

也许...但使用操作系统内存分析器将发现明显的内存泄漏,并可能是一个很好的开始。我同意Amarghosh的观点,尽管使用Flex Profiler是解决问题的最佳选择。 – heavilyinvolved 2009-11-29 23:10:50