我有适用于iOS设备的游戏。我在不同的设备中遇到内存问题前几天。
我在做的是: 1.从我的游戏设备中删除。 2.在xCode中“产品 - >清理”它。 3.在设备上运行它。 4.查看Instruments(活动监视器)中的内存。 5.拿另一台设备。 6.从第一步开始重复。
带iOS 4.3.1的iPad 1:游戏工作正常,主菜单使用51 MB内存,第一级使用105 MB。 带有iOS 5的iPad 1,带有iOS 5的iPod 4:游戏崩溃,主菜单为77 MB,第一级为130 MB。
有没有人有同样的问题?是因为更新的iOS吗?
10/31/2011 六个小时的断点和设备之间的跳跃给了我这样的: 在iOS 4.3.1 glTexSubImage2D 函数中,可以在openGLES.framework中找到,永远不会分配任何内存。
iOS 5.0中的相同功能调用
glTexSubImage_Exec - >
gleSynchronizeTextureLevelOnCurrentDevices - >
gfxUploadPluginTextureLevel - >
gfxAllocateTextureLevel - >
的malloc
毕竟,我在 glTexImage2D 和 glTexSubImage2D 中有不同的像素参数,这导致每个精灵额外增加30%的内存。在4.3.1 像素参数的差异是可以的,但在5.0中它不是。我不知道这是不是一个bug。 谢谢大家。
答案 0 :(得分:0)
你需要弄清楚你的记忆在哪里。仪器是一个良好的开端,但您可能希望在不同的点上进行快照并进行比较。 (我假设您已经使用Leaks仪器来识别真正的泄漏,而不仅仅是内存膨胀。)