【问题标题】:Does Leaks Instrument find all leaks? [closed]泄漏仪器是否发现所有泄漏? [关闭]
【发布时间】:2012-01-23 19:09:51
【问题描述】:

我有一个在 iPad 上运行的游戏,我正试图让其顺利运行,我的问题是,当用户启动它时它就很好,即使他们在游戏中玩了大约 15-20 分钟一个特定的游戏。但是,如果用户走得更久,不确定到底多长时间,游戏就会开始滞后,可以这么说。

我已经通过泄漏工具运行了它,起初我有大量的泄漏,但现在我只有 2 个,一个 NSMutableArray 和一个 NSString。但是这些只创建一次,并且说它们每个只占用 32 个字节。

有人有这方面的经验吗?

【问题讨论】:

  • “滞后”可能不是由于内存泄漏..

标签: objective-c xcode ipad memory-management memory-leaks


【解决方案1】:

正如@deanWombourne 提到的,这可能不是泄漏。这可能是所谓的遗弃记忆。 查看 Instruments Memory Allocations 并查看 All Allocations 行上的 Live Bytes 列是否随时间继续增加。您可以在游戏中重复一定顺序的操作时进行 Heapshots。有关如何拍摄 Heapshots 的说明,请参阅以下内容:

http://www.friday.com/bbum/2010/10/17/when-is-a-leak-not-a-leak-using-heapshot-analysis-to-find-undesirable-memory-growth/

【讨论】:

    【解决方案2】:

    那么它可能不是泄漏:)

    您可能会遇到这样一种情况,即您正在使用越来越多的内存但它没有泄漏,因为您仍然在某处引用它(例如向数组添加数据;数组变得越来越大但它没有泄漏 -仪器无法告诉你打算用它做什么!)

    这也可能不是直接的内存问题 - 例如,如果您不断向数组添加某些内容,则数组会变得越来越大,但这可能不是您的问题。您的问题可能是您遍历数组的每一帧,随着数组变得越来越大,这将花费越来越长的时间。

    你能想到你的游戏中的任何地方都可能发生这种事情吗?

    您还可以使用工具查看一段时间内的内存使用情况,看看它是否会上升或保持水平。

    【讨论】:

      猜你喜欢
      • 2011-11-02
      • 2012-07-06
      • 2011-07-11
      • 1970-01-01
      • 2020-08-01
      • 2011-10-12
      • 2011-10-14
      • 2011-06-18
      相关资源
      最近更新 更多