【发布时间】:2011-11-26 08:57:06
【问题描述】:
这个问题不是关于 iphone 内存管理中的保留/释放内容。我非常了解例程,并且我的应用程序中没有内存泄漏的事情。
当我使用 Activity Instruments 监控我的应用程序的整体内存活动时,我会弹出标题中显示的问题。
仪器始终显示我的应用正在使用的“实际内存”量一直在 21 MB 到 30MB 之间,从未更高。我觉得这个数额相对来说不大。但是,有时,我的应用程序会给出 1 级或 2 级内存警告(永远不会崩溃,并且我不会在代码中针对此警告执行任何操作)。
所以我想知道 iphone 内存背后的真正原因是什么。我的意思是,真正的记忆是唯一触发警告的东西吗?还是我应该处理的整个内存中还有其他东西(例如虚拟内存,如 Instruments 中所示)?
虽然我的应用从来没有因为内存问题而崩溃,但这个警告(尤其是 2 级警告)真的让我很恼火,让我害怕一旦我将来公开它就会崩溃。
有什么帮助吗?
谢谢
【问题讨论】:
-
我认为内存级别警告也是由于后台运行了大量其他应用程序,因此由于您的应用程序内部发生的各种事件会推动阈值,因此您可能会累积触发此类警告。当然,如果您可以在应用程序的 didReceiveMemoryWarning: 方法中采取一些步骤,例如释放任何缓存的数据,那么这将有所帮助。
-
@Luke,是的,我也怀疑过。如果前台应用需要更多内存,我也认为ios会杀死其他后台应用?
-
是的,我相信这是真的 - 努力从 Apple 的内存管理指南中找到引文...
-
@Luke,Apple 的内存管理只是告诉我们如何保留/释放(最重要的是),但没有更深入的信息。我认为 iOs 会杀死后台应用程序,因为苹果文档要求我们实现 applicationWillTerminate 委托
标签: iphone ios memory-management virtual-memory