我试图围绕一个问题(在this question中躲过)。上下文是:回合制游戏,使用cocos2d版本2.0开发,obj-c,无ARC,目前准备AppStore更新来解决一些iOS 7问题(我的,而不是iOS7)。
我自己的仪器,以及仪器,没有泄漏,没有遗弃的记忆,没有......平坦。这也是iOS 4,5,6.1中的情况。但是,在我提交之前的测试纲要中,当在设备上进行分析时,我看到每2分钟增加1Mb,游戏处于空闲状态,即没有任何用户交互(见下图)。
我唯一能看到的是这个IOAccelResource类别在生成捕获之间运行。
此外,我希望尽可能以“尽可能接近发布”的方式运行,并且仍能够随着时间的推移测量内存占用。你能建议我一种测量工艺尺寸的方法吗?
TIA。
答案 0 :(得分:2)
据我所知,这是一个虚假的(可能的仪器错误)。当使用相同代码库的'release'版本...即没有调试...并监视进程大小(即没有附加到正在运行的进程的调试进程)时,内存蠕变就不存在了。
答案 1 :(得分:1)
受过教育的猜测:UOAccelerometer可以使用IOAccelResource。它当然听起来像加速度计I / O类。
由于UIAccelerometer在iOS 7中被弃用但仍然被cocos2d使用,因此可能存在Apple没有关注或关注的问题。只是为了测试尝试从cocos2d删除任何UIAccelerometer引用,看看它是否消失。发布版本不应影响仪器内存监控,而归档版本只是代码角度的发布版本。
答案 2 :(得分:1)
您可以尝试使用仪器的快照分析来监控分配。这应该可以指示附加内存的分配位置。也许你已经试过了吗?
答案 3 :(得分:1)
Enable Zombie Objects
上的Edit Scheme > Run > Diagnostics
选项可能会导致此行为。如果已启用它,请务必将其禁用。
答案 4 :(得分:1)
里卡多的答案有一半:僵尸对象就是其中的一部分。你需要启用Zombies和附加进程才能获得蠕变。
总结: