Mis*_*hes 5 air garbage-collection memory-management actionscript-3
有时候我的adobe air应用程序变得非常慢,因为垃圾收集器开始在每个帧上连续工作并且需要超过800%的预算.它持续几分钟甚至更长时间.此问题仅在iPhone 4/4s上出现,并且在重新启动设备后,一切正常工作一段时间.
也许有人也有这种情况,并知道如何预防它的方法?
更新:已实施对象池和其他分配防护方法.所以没有什么可以收集,GC只是花费CPU来做任何事情.当这结束时,内存使用量仍然相同.即使使用相同的输入和场景,也不会每次都发生这种情况.所以我认为存在一些"不幸"的情况,分配的堆在某个阈值附近,AIR决定在从系统中取出另一个块之前进行清理.然后它找到了几个要处理的对象,并且不再需要新的块.在下一帧中,创建了很少的对象(非常少)并且重复了场景.

尝试使用对象池来回收对象。我假设您创建了很多对象,然后 GC 尝试释放内存,如果您回收对象,那么您将不会创建新对象,并且不需要收集旧对象。如果我的假设是正确的,那么使用对象池路径将提高您的应用程序性能并可能解决您的问题。
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |