alt text http://img263.imageshack.us/img263/1880/leak.jpg是我的问题所在。如果您看到没有内存泄漏,但我仍然得到了通用块的内存泄漏,如图所示。当我单击它时,它会给出以下详细信息,其中内存泄漏是由quartz核心造成的。我不知道我哪里出错了,因为我看不到泄漏栏中的任何漏洞。
发布于 2009-07-14 21:52:02
请记住,您看到“泄漏”的原因可能是分配给AutoRelease池的对象。像Three20这样的库特别喜欢使用这种方式进行图像缓存。如果是这样的话,有问题的内存将不会被释放,直到有直接需要它(即自动释放排出)。
如果你继续使用你的应用程序,你是否看到内存使用率一直在攀升,直到崩溃?或者你认为它就像锯齿一样--即先上升,然后突然下降,然后再上升?
发布于 2009-07-15 17:52:36
这看起来像是一个自动释放池在不断扩大,并且从不耗尽。在不了解你的应用程序的细节的情况下很难推荐任何东西(它是使用多个屏幕和表格,还是一个单一窗格的实用程序或游戏等)
您可能会考虑在应用程序中的逻辑点--例如执行单个任务时--创建一个新的自动释放池,并仅在该任务期间使用它,然后释放该池。这将有助于降低您的总内存,并让您更好地控制资源。
此外,如果应用程序使用多个视图控制器,例如,如果你正在调出一个模式视图或级联树视图,你可以为新视图创建控制器,但随后在视图控制器上设置一个代理,当工作完成时会收到通知,这样你就可以处理整个控制器和视图,而不是保留它。
最后,如果要处理大量图像,您可能需要创建一种基于文件系统的缓存机制,该机制具有固定数量的内存插槽,以便只将绝对需要的数据保存在内存中。
https://stackoverflow.com/questions/1127792
复制相似问题