Objective c 泄漏仪器是否发现所有泄漏?

Objective c 泄漏仪器是否发现所有泄漏?,objective-c,xcode,ipad,memory-management,memory-leaks,Objective C,Xcode,Ipad,Memory Management,Memory Leaks,我有一个在iPad上运行的游戏,我正在努力让它平稳运行,我的问题是,当用户启动它时,它很好,即使他们在一个特定的游戏中玩15-20分钟。然而,如果用户走的时间更长,不确定到底有多长,那么可以说游戏开始延迟 我通过leaks工具运行了它,起初我有很多漏洞,但现在我只有2个,一个NSMutableArray和一个NSString。但是这些文件只创建了一次,而且上面说每个文件只占用32字节 有人有过这方面的经验吗 那么可能不是泄漏:) 您可能会遇到这样一种情况:您使用的内存越来越多,但它没有泄漏,因为

我有一个在iPad上运行的游戏,我正在努力让它平稳运行,我的问题是,当用户启动它时,它很好,即使他们在一个特定的游戏中玩15-20分钟。然而,如果用户走的时间更长,不确定到底有多长,那么可以说游戏开始延迟

我通过leaks工具运行了它,起初我有很多漏洞,但现在我只有2个,一个NSMutableArray和一个NSString。但是这些文件只创建了一次,而且上面说每个文件只占用32字节


有人有过这方面的经验吗

那么可能不是泄漏:)

您可能会遇到这样一种情况:您使用的内存越来越多,但它没有泄漏,因为您在某个地方仍然有对它的引用(例如,向数组中添加数据;数组越来越大,但它没有泄漏-仪器无法告诉您计划如何使用它!)

这也可能不是直接的内存问题——例如,如果您不断向数组中添加某些内容,那么数组将越来越大,但这可能不是您的问题。您的问题可能是,在数组中迭代的每一帧都会随着数组越来越大而花费越来越长的时间

你能想到你的游戏中有什么地方会发生这种事情吗


您还可以使用仪器查看内存使用情况随时间的变化,看看它是在不断上升还是保持在水平。

正如@deanWombourne所提到的,这可能不是泄漏。这可能就是所谓的被抛弃的记忆。 查看Instruments内存分配,并查看“所有分配”行上的Live Bytes列是否随时间继续增加。你可以在游戏中重复特定的操作序列时拍摄照片。有关如何拍摄堆照片的说明,请参见以下内容:


延迟可能不是由于内存泄漏造成的。。