【发布时间】:2025-12-20 07:55:07
【问题描述】:
我有一个在 iPad 上运行的应用程序。我会说相当复杂的一个。我现在面临的主要问题是内存崩溃。经过几个讨论线程后,我无法弄清楚如何解决它。
我所有的内存泄漏都已修复。在监视仪器中的 heapshots 时,它们会在每个周期持续增加 1 MB 的数量级(我在应用程序的一个正常“状态”下进行 heapshots)。 80% 的 heapshots 增加属于“非对象”类别。它们的引用计数均为 1。
这些非对象内存占用是我的内存崩溃的可能原因吗?或者这只是一个症状?我应该在其他地方寻找根本原因吗?如果这些是可能的原因,那么消除这些记忆猪的系统方法是什么?
编辑:添加了屏幕截图。如您所见,没有调用我的代码(底部的 main() 除外)。有人能理解右侧的扩展细节吗,我在哪里可以找到,以删除引用计数为 1 的这 16 位内存(非对象)?这只是一个例子,有成千上万,导致我的记忆增长。
【问题讨论】:
-
抱歉,由于我在这个论坛的声誉低,我的图片无法上传 :-) 我会尽快添加。我已经为这个问题苦苦挣扎了好几个星期。我保证会在我取得进展的过程中返回我的发现。
-
这里是关于这个问题的更新。我将整个代码迁移到 ARC。它解决了很多问题。为了给出全貌,仍然发生了一些记忆问题。当深入挖掘时,我发现我的一个数据库函数使连接保持打开状态(而不是关闭它),这导致了内存占用。感谢大家帮助我。
标签: objective-c ios memory-management heap-memory