这篇文章主要是写给自己,一位自己多年深受windows其害,导致对操作系统中某些不规范的程序对内存的占用很是敏感,windows操作系统本身又不会回收这些本应该再关闭的时候释放掉的内存,就这样随着你开机时间的增加,内存占用越来越高。。。。然后。。

        呃,言归正传,总之,我对unix系统又本本主义了一把,我还是赶紧说说在mac下对内存的使用问题吧,给自己留个参考。

    简单的说,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,导致时间一长系统可用[内存]越来越少。因此常常需要重新启动。