代码之家  ›  专栏  ›  技术社区  ›  Mike S Andreas Köberle

iPad应用程序只有5MB内存不足

  •  1
  • Mike S Andreas Köberle  · 技术社区  · 16 年前

    我仔细查看了泄漏,但没有(很少-都在400字节以下)。我读过几篇关于在缓存图像时不使用imageNamed调用的帖子。我什么都不用。我正在使用imageWithContentsOfFile。

    我用了很多很多图片。主要是使用图形上下文渲染我自己。我正在释放所有内容,您可以看到内存被保留,然后在instruments视图中被释放。

    底线是,在我的图片和标签上来回切换之后,我得到了一个内存警告级别1,然后是2,然后崩溃。所有的内存使用通常低于5MB。

    有什么奇怪的藏匿吗?我快疯了。我的iPad应用程序无法使用,因为它在使用后几分钟内就崩溃了,因为它似乎逐渐堆积在内存中,而没有显示任何泄漏或大量内存使用。

    这与我的“Live Bytes”是4.57MB,而“Living”是53825有关吗?为什么还有这么多的东西还活着?活体计数大于50000是否正常?即使“活动字节”保持不变,它也会不断上升(对象计数)。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    正如我所描述的 here ,分配工具不显示应用程序的总内存使用量。你在那台仪器上看到的5MB只是冰山一角。

    相反,您需要使用内存监视器工具来查看应用程序的总体内存大小。我想你会对那里的数字感到惊讶的。

    调整内存使用率是一项复杂的任务,尤其是在处理大型图像时。仅仅因为泄漏没有显示任何泄漏并不意味着你没有在某个区域积累内存。在应用程序中执行重复操作,并使用分配工具中新的Heap Shot功能查看在每次重复操作之间累积的对象(如果有)。我用这种方法捕捉到了许多细微的记忆积累。