关于iOS内存优化--初识虚拟内存

有效的内存管理对性能非常重要。减少内存使用不仅可以降低内存空间,同时减少CPU时间。为了正确的优化代码,你需要理解底层系统如何管理内存。

OS X and iOS平台包涵了全集成,始终开启的虚拟内存系统。Both systems also provide up to 4 gigabytes of addressable space per 32-bit process. In addition, OS X provides approximately 18 exabytes of addressable space for 64-bit processes。即使拥有4G或者更多的RAM的计算机,系统也很少将这些RAM分配给一个独立的进程。

为了进程可以访问它们完整的4 gigabyte or 18 exabyte 地址空间,OS X 利用硬盘保存当前未使用的数据。当内存将用完时,需要将目前不使用的内存写入到磁盘,用来给新的数据提供空间。存储未使用数据的磁盘部分被称为backing store,因为它为主存提供了backup storage。

尽管OS X 提供了backing store,但是iOS没有。在iPhone应用中,那些已经在磁盘的只读数据(例如code pages)就会简单地从内存移除并且在需要的时候重新加载。可写数据由操作系统管理,永远不会从内存移除。相反,如果空闲内存数量降低到了下限,系统要求应用自愿地释放内存,用来为新数据提供空间。没有释放足够内存的应用会终止运行。

注意:不像大多数的UNIX-based的操作系统,OS X并不是采用预分配磁盘分区的方案来生成backing store。相反,它使用在机器的启动分区的所有可用空间。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容