我们正在为iPhone制作游戏。我们已经完成了开发并试图优化现在的游戏内存。我们注意到,当我们在游戏中加载特定的MVC时,并非所有分配的内存都被释放(大约增加了4-5MB)。如果您持续播放该游戏15-20分钟,这会使游戏的内存使用量非常高,并且在发出低内存警告后游戏最终崩溃。减少iPhone应用程序的内存使用量
这是我绑
1.运行静态分析仪上的游戏和固定所有的内存泄漏和警告。
2.手动检查所有类的dealloc是否被调用。这似乎很好。
3.也尝试在Xcode中运行Allocations工具,但其中的大部分条目都是CFStrings,mallocs和CFNumbers等,但并不真正告诉我的哪些类来自它们。有更好的方法来使用分配工具吗?
我也有一对夫妇的内存相关的问题
1.我们使用在游戏中很多地方自动释放对象,而无需使用一个自动释放池。我的理解是自动释放的对象应该在下一次运行循环中释放,并且不应该造成如此大的问题?
2.另外,如果我通过xib文件加载图像,它们会被iOS缓存。他们是否也会占用内存?
我该如何解决我的内存使用问题。任何帮助,将不胜感激。 谢谢!
我敢肯定,autoreleased对象需要一个池来释放该线程...... – DavidAndroidDev
@DavidAndroidDev真的,但应用程序的主要autorelease池通常就足够了。如果需要,您可以拥有自己的autorelease池,但通常不需要。 – Rob
@Rob不是只对主线程是真的吗?如果你在后台线程中创建对象,我相信它需要自己的池。我不确定OP的应用程序是否正在运行任何辅助线程,但我记得需要一个辅助线程的自动释放池。我会看看我能否找到我发现的地方。 – DavidAndroidDev