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,这时系统反而不在最佳状态,因为很多数据都需要从硬盘调用,速度反而慢了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 最近应用中出现低内存被杀的情况,所以就想办法对造成这一个问题的根源进行定位,主要是两个比较 Low 的思路 线下使...
    Joy___阅读 21,143评论 13 57
  • 目标是开发一个SDK,嵌入到APP里面,用来统计当前APP的实时CPU、内存等信息 2015.11.17 http...
    953e9bf34714阅读 5,868评论 0 8
  • 先来看下苹果文档: Memory Management Programming Guide for Core Fo...
    少少白阅读 4,639评论 4 18
  • 概述 我们都知道一个进程是与其他进程共享CPU和内存资源的。正因如此,操作系统需要有一套完善的内存管理机制才能防止...
    SylvanasSun阅读 3,958评论 0 25
  • 没什么特别的事发生,没有特别高兴,没有特别难过,统称为无聊的一天。
    君晓墨阅读 233评论 0 0

友情链接更多精彩内容