原创文章,禁止转载,否则追究法律责任
最近身边用苹果的人越来越多,这是一件好事,我很高兴身边的朋友们都能用上世界上最先进的计算机和操作系统,但是大部分朋友都是从Windows过度过来的,从系统使用和原理理解上都有一些Windows的观念,最近很多朋友问我一个问题:“为什么我的系统一开机还没运行什么程序,空余内存就没多少了,我可是4GB内存啊,是不是有什么问题?”针对这一问题,特写此文,让大家理解基于UNIX的Mac OS X是如何管理内存的。
之前转载了一篇文章介绍Unix/Linux的内存管理,但是很多朋友说看不懂,那今天我就通俗的跟大家分享一下,Mac是如何管理内存的。
首先,我们要来了解一下,Mac OS X的内存四种状态,打开你的“应用程序-实用工具-系统监视器”程序,切换到“系统内存”标签,你会看到你的内存有联动、活跃、非活跃和可用空间四种状态:
见下图:
联动是系统核心占用的,永远不会从系统物理[内存]种清除,
活跃表示这些[内存]数据正在使用种,或者刚被使用过,
非活跃表示这些[内存]中的数据是有效的,但是最近没有被使用,
可用空间表示这些[内存]中的数据是无效的,这些空间可以随时被程序使用。
当可用空间的[内存]低于某个值(这个值是由你的物理[内存]大小决定的),系统则会按照以下顺序使用非活跃的资源。首先如果非活跃的数据最近被调用了,系统会把它们的状态改变成活跃,并接在原有活跃[内存]逻辑地址的后面, 如果非活跃的[内存]数据最近没有被使用过,但是曾经被更改过而还没有在硬盘的相应虚拟[内存]中做修改,系统会对相应硬盘的虚拟[内存]做修改,并把这部分物理[内存]释放为可用空间供程序使用。如果非活跃[内存]中得数据被在映射到硬盘后再没有被更改过,则直接释放成可用空间。最后如果活跃的[内存]一段时间没有被使用,会被暂时改变状态为非活跃。