繁体   English   中英

iPhone内存管理背后/内部究竟是什么?

[英]What's exactly behind / inside iPhone memory management?

这个问题不是关于iphone内存管理中保留/释放的东西。 我非常了解这个例程,我的应用程序中没有内存泄漏的东西。

当我使用Activity Instruments监视我的应用程序的整体内存活动时,我会弹出标题中显示的问题。

该仪器始终显示我的应用程序正在使用的“真实内存”量保持在21 MB到30 MB之间,从不高。 我认为这个数额相对不大。 但是,有时候,我的应用程序会给出1级或2级内存警告(从不崩溃,我的代码中没有为此警告做任何事情)。

所以我想知道iPhone背后的东西究竟是什么。 我的意思是,真正的记忆是唯一触发警告的东西吗? 或者还有什么其他的(比如虚拟内存,如仪器中所示)我应该照顾整个内存?

虽然我的应用程序永远不会因为内存问题而崩溃,但这个警告事件(尤其是2级警告)确实让我感到烦恼,并且一旦我将其发布给公众,我就会害怕崩溃。

有帮助吗?

谢谢

存在内存警告,告诉您的应用程序即将接近您的限制。 它们不一定是“坏”的东西 - 许多应用程序只是忽略它们。

关于何时触发内存警告的实际实现细节并不重要,实际上在不同设备之间会有很大差异。 iPhone 4可能有512MB的RAM供玩,但3GS只有一半。

也就是说,有些事情值得了解内存警告:

  • 当可用内存的总量达到一定程度时,将会触发内存警告
  • 这些级别没有记录 所以你不知道1级警告和2级警告之间有什么区别,除了事实2比1更严重(更紧急)
  • 内存警告不是特定于应用程序的。 内存警告将传递给当前正在运行但未暂停的所有应用程序。 所以你可能不直接负责触发一个。
  • 收到内存警告后,系统将尝试代表您释放内存

同样,确切的实现细节没有记录,您不需要关心它们。 内存警告是您通过释放任何不需要的对象来帮助系统的机会。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM