9.2.3 系统内存管理

9.2.3 系统内存管理

iOS使用与macOS同样的虚拟内存系统。在iOS中,每个程序都拥有自己的虚拟地址空间,但其可用的虚拟内存受限于现有的物理内存的数量(这和macOS不同)。这是因为当内存被占满时,iOS并不将非永久内存页面(volatile pages)写入到磁盘中;相反地,虚拟内存系统会根据需要来释放永久内存(nonvolatile memory),以此确保为正在运行的应用程序提供所需的空间。此操作是因为iOS设备的磁盘为闪存(flash),所以要尽可能少地进行读写操作以保证磁盘的寿命。内存的释放是通过删除当前没有在使用或包含只读内容(如代码页面)的内存页面来实现的,这样的页面可以在之后需要使用时再重新装载到内存中。如果内存还是不够,系统可能会向正在运行的应用程序发出通告,要求它们释放额外的内存。所有的应用程序都应该响应这种通告,并尽可能地减轻系统的内存压力。