为什么应用程序在低设备内存崩溃?

时间:2013-03-16 06:47:20

标签: ios objective-c

我对iOS&仍然与基本概念相距甚远。

我在iOS书籍和读物中读过由于内存不足导致应用程序崩溃的论坛,但为什么会崩溃? 如果有人可以投光,那会很有帮助。

4 个答案:

答案 0 :(得分:6)

iOS设备将虚拟内存与分页配合使用。因为它是一个移动设备,没有可扩展内存或漂亮 大内存可用(如硬盘驱动器),因此页面的可用性受到各种因素的限制,例如打开的应用程序数量,不同应用程序的分配等。此外,一些板载应用程序将始终使用某些页面,即使他们处于休眠状态,如野生动物园,i-tunes,消息等。 因此,基本上应用程序的活动数量,应用程序可以使用的页面数量会进一步减少。

因此,如果您的应用程序的分配率超过其他应用程序释放页面的速率,您的应用程序将崩溃。

操作系统只释放可写数据未释放的内存中的只读数据。当可写数据超过某个阈值时,操作系统会要求应用程序释放内存。无法释放内存导致崩溃

Memory Allocations Apple

答案 1 :(得分:3)

它并没有真正崩溃。如果应用程序在通知后没有释放足够的内存,则会被内核终止。

为了使其透明,将编写崩溃报告,其中包含有关当前情况的详细信息。对于用户来说,应用程序看起来像是崩溃了,因为它突然消失了。

答案 2 :(得分:2)

这些设备没有太多内存,如果你贪心内存,那你就是在寻找麻烦

iOS有很好的内存工具ARC。请阅读完整文档here

答案 3 :(得分:0)

I've been burned before in my own apps when loading table views consisting of nothing but UIImages,它可能看起来像表中的小缩略图,但最终成为幕后的全分辨率(和大量内存)对象。

在处理可能存在潜在内存耗尽的对象时,您需要小心。

但请记住,Apple提供了Xcode Instruments等工具,可用于分析应用程序的内存性能。