可可垃圾收集不起作用?

时间:2011-01-02 08:33:01

标签: cocoa garbage-collection

我在Cocoa应用程序中启用了垃圾收集。 alt text

为什么我的应用程序仍然使用大量内存。实际上,它不仅仅使用了大量的内存,如果我让它运行几个小时它将占用几千兆字节,这是失控的。 alt text

我需要做些什么特别的工作来完成这项工作吗?

1 个答案:

答案 0 :(得分:0)

不,但有几种方法可以实现:

  1. 您可能在分配工具或目标环境中启用了僵尸。检查两者并确保僵尸已关闭。
  2. 你可能会放弃记忆(抓住物体,甚至是在某一点之后你从未使用过的物体,永远不要放弃它们)。如果您将对象添加到某种缓存中并且从不实际从中清除任何缓存,这将特别容易。 (imageNamed:执行此操作,因此请注意,如果您以这种方式加载大量图像。)使用快照查看堆积的对象,然后查看其历史记录以查看它们的创建位置。还可以使用Object Graph工具查看是什么让它们保持活力。
  3. 此外,您是直接泄漏的对象(可能是CF对象,默认情况下不可收集)。选择Leaks仪器以查看它的含义。