【问题标题】:iPhone memory managementiPhone内存管理
【发布时间】:2011-10-10 08:25:45
【问题描述】:

我一直在使用仪器检查程序中的泄漏和其他内存问题。虽然仪器发现的泄漏非常小并且无关紧要,但我发现在我使用该程序时,可用的物理内存一直在下降。

我使用内存监视器来确定我的应用程序正在使用多少内存,并使用分配来确定这主要发生在哪里。我总是确保每次分配或保留时都释放,并且看到几乎没有泄漏,我假设我的内存管理很好。

有谁知道我可以做些什么来解决这个问题或推荐一种方法来解决这个问题?

【问题讨论】:

  • 任何泄漏都很重要。 “勉强”不切,应该没有。
  • 同意@MarkPowell。在测试所有功能的程序的整个生命周期中应该没有泄漏。将每个泄漏隔离到一段代码中,如果必须的话,用细齿梳子梳理它,解决它,冲洗,然后重复。堵住所有泄漏点后,您可以重新评估是否还有其他问题需要解决,但您必须从泄漏点开始。

标签: iphone objective-c memory alloc


【解决方案1】:

即使你释放了不需要的对象,也没关系。您可能分配了太多东西并出于某种原因保留它们。您可以尝试检查一下:

http://macdevelopertips.com/objective-c/objective-c-memory-management.html

http://akosma.com/2009/01/28/10-iphone-memory-management-tips/

我建议您检查一下在应用程序的生命周期中分配的内容和保留的内容,看看您是否可以在不使用太多内存的情况下做出同样的事情。

编辑:我必须同意 Mark 和 Kongress 的观点,每次泄漏都对您的应用程序的生命至关重要。

【讨论】:

  • 所以我已经设法将内存提高了很多(尽管它仍然不完全完美)。我发现我遇到的两个主要问题是没有释放具有保留属性的指针,并且我在任何地方都使用 UIImage imageNamed(并且我有数百个图像)缓存了所有图像。
  • 如果您需要更多帮助,请告诉我奥尔尚斯克。
猜你喜欢
  • 2011-04-10
  • 2010-10-28
相关资源
最近更新 更多