首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的内存在哪里被消耗了?

问我的内存在哪里被消耗了?
EN

Stack Overflow用户
提问于 2009-07-14 20:22:44
回答 2查看 289关注 0票数 1

alt text http://img263.imageshack.us/img263/1880/leak.jpg是我的问题所在。如果您看到没有内存泄漏,但我仍然得到了通用块的内存泄漏,如图所示。当我单击它时,它会给出以下详细信息,其中内存泄漏是由quartz核心造成的。我不知道我哪里出错了,因为我看不到泄漏栏中的任何漏洞。

alt text http://img263.imageshack.us/img263/6813/leak2.jpg

EN

回答 2

Stack Overflow用户

发布于 2009-07-14 21:52:02

请记住,您看到“泄漏”的原因可能是分配给AutoRelease池的对象。像Three20这样的库特别喜欢使用这种方式进行图像缓存。如果是这样的话,有问题的内存将不会被释放,直到有直接需要它(即自动释放排出)。

如果你继续使用你的应用程序,你是否看到内存使用率一直在攀升,直到崩溃?或者你认为它就像锯齿一样--即先上升,然后突然下降,然后再上升?

票数 2
EN

Stack Overflow用户

发布于 2009-07-15 17:52:36

这看起来像是一个自动释放池在不断扩大,并且从不耗尽。在不了解你的应用程序的细节的情况下很难推荐任何东西(它是使用多个屏幕和表格,还是一个单一窗格的实用程序或游戏等)

您可能会考虑在应用程序中的逻辑点--例如执行单个任务时--创建一个新的自动释放池,并仅在该任务期间使用它,然后释放该池。这将有助于降低您的总内存,并让您更好地控制资源。

此外,如果应用程序使用多个视图控制器,例如,如果你正在调出一个模式视图或级联树视图,你可以为新视图创建控制器,但随后在视图控制器上设置一个代理,当工作完成时会收到通知,这样你就可以处理整个控制器和视图,而不是保留它。

最后,如果要处理大量图像,您可能需要创建一种基于文件系统的缓存机制,该机制具有固定数量的内存插槽,以便只将绝对需要的数据保存在内存中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1127792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档