【问题标题】:I release all memory that I can, but my program need more, what can I do?我尽可能释放所有内存,但我的程序需要更多内存,我该怎么办?
【发布时间】:2011-06-10 14:52:09
【问题描述】:

这是一个哲学问题。我的程序发送需要更多内存的消息。我释放所有内存,让它继续正常工作。但是,程序又告诉我需要更多的内存,而我没有人可以释放。我现在做什么?

这几乎发生在我将相机与 ZBar 库一起使用时,因此我无法控制 ZBar(我无法释放它的内存,只有我的内存)。这确实需要大量内存才能工作。因为这个,我不知道我在做什么。

程序没有崩溃,但运行不稳定。

【问题讨论】:

  • 你在写什么样的应用程序。下一个合乎逻辑的步骤是开始优化内存。开始使用 C 数组而不是 NSArrays 并使用结构而不是对象。如果你绝对需要,你可以缓存到磁盘/闪存。
  • 我更新它。当这种情况几乎发生时,不显示是不好的。
  • 我对 ZBar 不熟悉,但也许您可以使用不同的库来完成相同的任务,它使用的内存比 ZBar 少。

标签: iphone objective-c ios memory memory-management


【解决方案1】:

如果你的问题没有更多细节,你的答案就会很模糊:)

显而易见的答案是使用更少的内存。

如果取决于您使用内存的目的,但您可以考虑将其放入磁盘上的文件中并仅读取您需要的数据?

您还应该检查是否有泄漏 - 您可能在不知不觉中使用了内存。

如果您发布有关您的确切问题的更多信息,我们可能会提供更多帮助。

【讨论】:

  • 大声笑,对不起。我编辑并显示更多。问题是当我将相机与库而不是文件一起使用时会发生这种情况。正因为如此,我以为没有更多的记忆可以释放了。
  • 好的,所以文件对你帮助不大。假设您的意思是您使用的是ZBarReaderViewController,那么当您调用dismissModalViewController 时,它应该释放所有内存?
  • 好吧,我需要内存来运行 ViewController。即使我关闭视图并释放内存,它也不能解决我的问题。但是你给我一个好主意,我可以关闭视图并对用户说:“内存问题,关闭其他程序”。比较政治,他可以再试一次。
猜你喜欢
  • 1970-01-01
  • 2014-08-12
  • 2010-09-19
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多