iOS中的内存管理

其实,iOS的内存管理和其它操作系统大同小异。这里按照苹果文档所述,重点对堆内存分配整理下。

首先,iOS和其它系统一样,内存分页,每页4K。多个页构成一个region统一管理,负责管理的对象是VM object,其中包含了pager、size、resident pages等诸多属性。

当前的主流iPhone实际物理内存都不超过1G,可以说不算大。不过和Android机比起来,我不得不为苹果的设计称赞,1G空间利用得如此高效,性能不差,也控制了发热。

那么在这仅有的1G内存中,iOS的操作系统更是抛弃了不必要的复杂——系统层面不支持App内存页换出。当内存吃紧时,对于可以重新载入的只读数据来说,直接清理掉,而对于可写的数据,只能通过App自己去管理维护。内存紧张时,iOS会向App发起memory warning,不配合释放足够内存者,杀!

推荐阅读更多精彩内容

  • 先来看下苹果文档: Memory Management Programming Guide for Core Fo...
    少少白阅读 3,376评论 4 18
  • iOS中的内存管理 内存管理的思考方式 自己生成的对象,自己持有 非自己生成的对象,自己也能持有 不再需要自己持有...
    justvon阅读 90评论 0 0
  • 说起内存管理,看似老生常谈,而真正掌握内存管理的核心其实并不简单。ARC/MRR以及“谁分配谁就负责释放”这种基本...
    无所不知的程序员阅读 131评论 0 0
  • 1. 辛云飞盘腿坐在沙发前的地板上,飞快的敲着键盘,本该在公司做的报表,都拿了回来。 比熊犬仔仔睡在云飞脚边,茶几...
    微风徐徐xp阅读 143评论 0 1
  • 恩施,说起来想笑,记忆里第一次听到这个城市,是在小时候看的一本书,里面有这么一段话:“听说那儿是一个世外桃源,家家...
    三个乡巴佬特产阅读 120评论 0 0