http://elf8848.iteye.com/blog/1373854

先请看下面三张图片,是MAC OS系统的“活动监视器”的截图,分别是8G,4G,2G内存。

使用Mac OS系统时,关注内存的使用情况有时是必要的。

常常使用Windows系统的朋友,可能觉得Mac OS系统一启动好像就一下子把内存全用光了,很紧张。

其实是对Mac OS(或Linux)系统的内存管理方式不理解造成的,还在使用Windows系统的思维来看待这个问题。

下面我们来了解一下Mac OS的“活动监视器”的“系统内存”标签:

“系统内存”标签的饼图中显示的内存类型共有四种:wired(联动内存), activez(活跃内存), inactive(非活跃内存),free(可用内存)四种。

四块饼图的总和等于安装在电脑上的内存(RAM)总量。

wired(联动内存):

是系统核心占用的,此内存中的信息无法移动到硬盘,因此必须保留在 RAM 中。联动内存的大小取决于当前使用的应用程序。

activez(活跃内存):

表示这些内存数据正在使用当中,或者刚刚被使用过。

inactive(非活跃内存):

表示这些内存中的数据是有效的,现在没有被使用,但最近曾经被使用过。

例如,如果您使用 Mail 然后退出,则 Mail 曾经使用的 RAM 会标记为“非活跃”内存。此类“非活跃”内存可供其他应用程序使用,就像“可用”内存一样。

但是,如果在其他应用程序占用此“非活跃”内存之前打开 Mail,则可以更快打开 Mail,因为其“非活跃”内存会转换为“活跃”内存,而不是从较慢的硬盘加载 Mail。

free(可用内存):

指当前未使用的内存,这些空间可以随时被程序使用。

虚拟内存大小:

这是指您的 Mac 上所有进程的虚拟内存总量。

入页面(Page outs) /  出页面(Page outs):

这是指在 RAM 和硬盘之间移动的信息量。此数值是 Mac OS X 在 RAM 和磁盘空间之间移动的累计数据量。

提示:当 Mac 必须将 RAM 中的信息写入硬盘驱动器(因为 RAM 已满)时,即会产生出页面。添加更多 RAM 可减少出页面。

已使用的交换:

这是指拷贝到硬盘驱动器上交换文件中的信息量。

Mac OS(或Linux)系统的内存管理方式:

Mac OS的内存管理非常高效。它会根据需要自动分配内存并调整内存的内容。

当free的[内存]低于某个值(这个值是由你的物理[内存]大小决定 的),系统则会按照以下顺序使用inactive的资源。

首先如果inactive的数据最近被调用了,系统会把它们的状态改变成active,并接在原有active[内存]逻辑地址的后面,

如果inactive的[内存]数据最近没有被使用过,但是曾经被更改过而还没有在硬盘的相应虚拟[内存]中做修改,

系统会对相应硬盘的虚拟[内存]做修改,并把这部分物理[内存]释放为free供程序使用。

如果inactive[内存]中得数据被在映射到硬盘后再没有被更改过,则直接释放成free。

最后如果active的[内存]一段时间没有被使用,会被暂时改变状态为inactive。

有了以上知识后,就可以对内存的使用情况做出自己的分析了。

当前可用的内存总量 = free(可用内存) + inactive(非活跃内存)

如果你的系统里有少量的free memeory和大量的inactive的memeory,说明你的内存是够用的,系统运行在最佳状态,只要有需要系统就会使用它们。

反之,如果系统的free(可用内存)和inactive(非活跃内存)都很少,而activez(活跃内存)很多,说明你的内存不够用了,快加内存吧。

当然一开机,大部分内存都是free(可用内存),这时系统反而不在最佳状态,因为很多数据都需要从硬盘调取,速度反而慢了。

同时关注“出页面(Page outs)”也是有必要的,前面有一句话已经提到了产生“出页面”的原因。

出页面 很多可导致性能不好,一般free(可用内存)和inactive(非活跃内存)都很少时,同时也会产生大量的“出页面”。

可以从本文配套的三张图片看出来。

注:

windows为了兼容古老和不规范的程序,允许程序直接控制硬件,导致windows系统的权力不够大,而许多windows程序也不规范,

因此在退出进程后往往许多[内存]没有还给系统变成了invisible memory,导致时间一长系统可用[内存]越来越少。因此常常需要重新启动。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

Mac OS 内存管理知识相关推荐

  1. 从内存管理原理,窥探OS内存管理机制

    摘要:本文将从最简单的内存管理原理说起,带大家一起窥探OS的内存管理机制,由此熟悉底层的内存管理机制,写出高效的应用程序. 本文分享自华为云社区<探索OS的内存管理原理>,作者:元闰子 . ...

  2. Symbian OS内存管理介绍

    Symbian OS内存管理介绍 在Symbain OS中内存管理的主要任务是:如何为程序分配内存以及如何在程序的内部分配内存. Symbian OS 程序最根本和基础的东西就是内存,作为一个有限的资 ...

  3. Mac OS包管理器Homebrew

    一.Homebrew简介 Homebrew是Mac OS平台下的一个软件安装包管理器,使用brew命令可以很方便的进行Mac OS的软件包安装.更新.卸载等. 二.Homebrew安装 在终端输入以下 ...

  4. Mac OS 软件包管理器Homebrew

    前言 当我们在 Mac os 下安装软件的时候,常常会因为缺失依赖包而不得不停止,这时候通常的做法就是在网上下载各种依赖包来进行一一的安装,这种操作难免会有些复杂了,并且很浪费时间.那么今天要讲的是一 ...

  5. 这些Android内存管理知识你都知道吗

    谭嘉俊的博客地址: https://juejin.im/user/593f7b33fe88c2006a37eb9b Android Runtime(ART)虚拟机和Dalvik虚拟机都使用分页(Pag ...

  6. Android内存管理知识百科

    /   今日科技快讯   / 近日,据国外媒体报道,美国电动汽车制造商特斯拉在当地时间周二提交的一份文件中表示,公司今年上半年从政府获得了与员工工资相关的补贴,以帮助减少疫情对业务的影响.特斯拉首席执 ...

  7. Objective-C内存管理知识总结

    原帖地址  http://www.cocoachina.com/bbs/read.php?tid-12760.html Objective-C的内存管理机制是比较灵活的,即可以拿来像C/C++一样用, ...

  8. iPhone/Mac Objective-C内存管理教程和原理剖析

    版权声明 此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有.欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com/,且必 ...

  9. Linux内存管理知识总结(一)

    以下源代码来自 linux-5.10.3 内核代码,主要以 x86-32 为例 Linux 内存管理是一个很复杂的"工程",它不仅仅是对物理内存的管理,也涉及到虚拟内存管理.内存交 ...

  10. Mac OS电源管理大解析

    睡眠模式-hibernatemode-也就是Mac在睡眠模式下面的工作方式,目前主要有3种. hibernatemode 0:睡眠时内存保持供电,其他部件断电,内存数据不写入硬盘.优点是可以快速唤醒. ...

最新文章

  1. python和c语言相通吗_python和C语言互相调用的几种方式
  2. 河南省第十三届ICPC大学生程序设计竞赛 【部分题题解】
  3. [JavaScript] 使用ArrayBuffer和Blob编辑二进制流 下载文件
  4. mysql事务隔离级别 花_mysql事务隔离级别
  5. 帆软报表判断传入条件是否为空,根据逗号分隔
  6. 某一天,忽然发现自己坚持不下去了。(无关计算机,只是一些自己的困惑和感想)
  7. oracle vm突然黑屏了
  8. 使用windows内存-内存映射文件
  9. web前端学习资源分享
  10. WPF实现选项卡效果(1)——使用AvalonDock
  11. linux修复windows,Linux十大妙用:充当Windows修复工具
  12. 测试技术总监需要具备哪些能力
  13. 计算机考研需要过英语六级吗,研究生毕业要过英语六级吗 研究生毕业对英语六级有要求吗...
  14. WebGL/ThreeJS项目结构介绍2-创建地板并贴图
  15. python 读视频_Python3读取视频保存视频
  16. R语言基础知识入门学习(一)
  17. 外贸软件如何提升进出口公司业绩 实现降本增效
  18. NR PRACH(六) type 2(2-step) RA基本过程及时频域映射
  19. vue中对echarts折线图设置基准线/警告线,可在输入框输入想要的值,并改变已有的基准线的值。
  20. Word文档粘贴的表格中文字有淡灰色背景的去除方法

热门文章

  1. 基于SSM框架和JSP的房屋租赁、合同签订系统
  2. 2017年2月14日实习日记 RHEL下dracut制作initramfs
  3. 小技巧(7):WPS批量修改图片尺寸
  4. 28335和C语言数据存储检索
  5. 如何做好客户需求分析
  6. 各国货币名称中英对照
  7. 类人猿手游内存技术教程
  8. niosii 把程序固化到epcs中的步骤
  9. 记录一个去底色转换为透明图片的在线工具
  10. Keil (MDK)中变量定义位置