【发布时间】:2010-08-19 15:22:19
【问题描述】:
我的应用程序正在使用相当多的内存,因此它经常被看门狗杀死。 在我努力减少内存消耗(并改变一些其他东西)的过程中,我重写了一些系统函数(准确地说,替换了几个 CoreText 类)。
实际上进行得非常好,我已经设法将内存消耗减少了约 3mb(根据分配和内存监控工具)。
尽管如此,现在我的应用程序很快就会被看门狗杀死。当旧版本仍在工作(即使消耗更多内存)时,新版本会被操作系统杀死。
我认为这可能是由于过度使用 malloc/free 来分配/释放堆上的许多小结构。
是这样吗?
还有哪些其他问题可能导致此行为(内存消耗减少/看门狗更快地杀死应用程序)?
可能是因为我的应用程序现在管理内存而不是系统库吗?
【问题讨论】:
-
查看控制台和崩溃日志(Xcode -> Organizer -> Your Device -> Console/Device Logs)。控制台应该说明你的应用程序被杀死的原因,如果它是“低内存”杀死,它也会列出(按日期排序,检查最新事件)。它将是“计数驻留页面”列,指示操作系统看到的“内存使用情况”;如果你的应用被杀了,它会说“(抛弃)”。
标签: iphone memory-management malloc