【问题标题】:Running out of memory but not seeing excessive object allocation in Instruments内存不足但未在 Instruments 中看到过多的对象分配
【发布时间】:2011-02-07 18:31:19
【问题描述】:

我有一个 iPad 应用程序由于内存不足而崩溃。但是,Instruments 没有显示使用 ObjectAlloc 分配的任何大量内存——它在应用程序的生命周期内保持在 1MB 以下。 Leaks 显示在运行过程中泄漏的数据少于 1kB。内存监视器显示设备上的可用内存随着使用而显着下降,最终下降到内存不足的程度。下面是 Instruments 的截图:

Instruments screenshot http://www.freeimagehosting.net/uploads/0758372561.png

我完全被难住了。据我所知,这基本上是说就我的应用程序而言,我使用的内存从未超过 750kB,但设备的物理内存仍然不足,这导致我的应用程序崩溃/强制退出。

我是使用 XCode 调试内存问题的新手。我测量这个错误吗?还有其他方法可以查看此内存的去向吗?

【问题讨论】:

  • 您是否分配了任何非 Objective-C 对象的内存(例如,使用 malloc)?

标签: iphone objective-c ipad


【解决方案1】:

如果您查看 Leaks 行,就会发现一大堆内存泄漏都是连续发生的。检查以确保您正在释放您分配的任何对象或您的类拥有对的引用。

【讨论】:

  • 嗯,也许我读错了,但在我看来,只有一个时刻有一些泄漏(橙色条),总共有 212 个泄漏字节(蓝条)。我错过了什么吗?
  • 这看起来像是很小的泄漏。您可能希望“已创建且仍然存在”来显示尚未释放的内存。应用程序做什么?我想知道是否有内存以某种方式不计入您的进程。
猜你喜欢
  • 2014-10-15
  • 2012-06-23
  • 2010-11-06
  • 1970-01-01
  • 2011-03-13
  • 1970-01-01
  • 2014-05-11
  • 2015-08-15
  • 1970-01-01
相关资源
最近更新 更多