关于内存使用状态的问题

大家总是觉得os x 标注为free的[内存]往往一下子就用完了 。很紧张 , 觉得是不是[内存]不够用 。其实这是大家对unix系统的[内存]管理方式不清楚 , 思维停留在windows系统下 。
简单的说 , Mac OS X的[内存]使用情况分为:wired, active, inactive和free四种 。
wired是系统核心占用的 , 永远不会从系统物理[内存]种驱除 。
active表示这些[内存]数据正在使用种 , 或者刚被使用过 。
inactive表示这些[内存]中的数据是有效的 , 但是最近没有被使用 。
free, 表示这些[内存]中的数据是无效的 , 这些空间可以随时被程序使用 。
当free的[内存]低于某个值(这个值是由你的物理[内存]大小决定的) , 系统则会按照以下顺序使用inactive的资源 。首先如果inactive的数据最近被调用了 , 系统会把它们的状态改变成active,并接在原有active[内存]逻辑地址的后面, 如果inactive的[内存]数据最近没有被使用过 , 但是曾经被更改过而还没有在硬盘的相应虚拟[内存]中做修改 , 系统会对相应硬盘的虚拟[内存]做修改 , 并把这部分物理[内存]释放为free供程序使用 。如果inactive[内存]中得数据被在映射到硬盘后再没有被更改过 , 则直接释放成free 。最后如果active的[内存]一段时间没有被使用 , 会被暂时改变状态为inactive 。
所以说 , 如果你的系统里有少量的free memeory和大量的inactive的memeory , 说明你的[内存]是够用的 , 系统运行在最佳状态 , 只要需要,系统就会使用它们 , 不用担心 。而反之如果系统的free memory和inactive memory都很少 , 而active memory很多 , 说明你的[内存]不够了 。当然一开机 , 大部分[内存]都是free,这时系统反而不在最佳状态 , 因为很多数据都需要从硬盘调用 , 速度反而慢了 。
【关于内存使用状态的问题】windows为了兼容古老和不规范的程序 , 允许程序直接控制硬件 , 导致windows系统的权力不够大 , 而许多windows程序也不规范 , 因此在退出进程后往往许多[内存]没有还给系统变成了invisible memory , 导致时间一长系统可用[内存]越来越少 。因此常常需要重新启动 。

    推荐阅读