我有一款游戏在iPad上运行,我试图顺利运行,而我的问题是这样的,当用户启动它时,它就好,并且即使它们在一个游戏中玩了大约15-20分钟特定的游戏。然而,如果用户时间变长,不确定游戏究竟有多长时间,那么游戏开始滞后,可以这么说。泄漏仪器是否发现所有泄漏?
我已经运行它通过泄漏仪器,起初我有大量的泄漏,但现在我把它归结为2,一个NSMutableArray和一个NSString。但是这些只是创建一次,它表示它们每个只占用32个字节。
有没有人有这方面的经验?
我有一款游戏在iPad上运行,我试图顺利运行,而我的问题是这样的,当用户启动它时,它就好,并且即使它们在一个游戏中玩了大约15-20分钟特定的游戏。然而,如果用户时间变长,不确定游戏究竟有多长时间,那么游戏开始滞后,可以这么说。泄漏仪器是否发现所有泄漏?
我已经运行它通过泄漏仪器,起初我有大量的泄漏,但现在我把它归结为2,一个NSMutableArray和一个NSString。但是这些只是创建一次,它表示它们每个只占用32个字节。
有没有人有这方面的经验?
那么它可能不是一个漏:)
你可能有你正在使用越来越多的内存所处的环境,但它不是漏水,因为你还是要对它的引用的地方(例如将数据添加到阵列;阵列变得越来越大,但它不是泄漏 - 仪器不能告诉你打算用它做什么!)
它也可能不是直接的内存问题 - 例如,如果你不断地添加东西到一个数组将会变得越来越大,但这可能不是你的问题。你的问题可能是你在迭代数组的每一帧,随着数组变得越来越大,这将花费越来越长的时间。
你能想到任何地方是你的游戏,这个王者的事情可能会发生吗?
您还可以使用仪器随时查看您的记忆体使用情况,并查看它是否升高或保持水平。
正如@deanWombourne所说,它可能不是泄漏。它可能是所谓的遗弃记忆。 查看仪器内存分配并查看All Allocations行上的Live Bytes列是否会随着时间的推移而继续增加。您可以在游戏中重复某个特定操作序列的同时拍摄Heapshots。参见如何拍摄Heapshots说明以下内容:
的“滞后”可能不是由于内存泄漏.. – 2011-12-19 17:29:37