Mac OS 内存管理知识
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 内存管理知识相关推荐
- 从内存管理原理,窥探OS内存管理机制
摘要:本文将从最简单的内存管理原理说起,带大家一起窥探OS的内存管理机制,由此熟悉底层的内存管理机制,写出高效的应用程序. 本文分享自华为云社区<探索OS的内存管理原理>,作者:元闰子 . ...
- Symbian OS内存管理介绍
Symbian OS内存管理介绍 在Symbain OS中内存管理的主要任务是:如何为程序分配内存以及如何在程序的内部分配内存. Symbian OS 程序最根本和基础的东西就是内存,作为一个有限的资 ...
- Mac OS包管理器Homebrew
一.Homebrew简介 Homebrew是Mac OS平台下的一个软件安装包管理器,使用brew命令可以很方便的进行Mac OS的软件包安装.更新.卸载等. 二.Homebrew安装 在终端输入以下 ...
- Mac OS 软件包管理器Homebrew
前言 当我们在 Mac os 下安装软件的时候,常常会因为缺失依赖包而不得不停止,这时候通常的做法就是在网上下载各种依赖包来进行一一的安装,这种操作难免会有些复杂了,并且很浪费时间.那么今天要讲的是一 ...
- 这些Android内存管理知识你都知道吗
谭嘉俊的博客地址: https://juejin.im/user/593f7b33fe88c2006a37eb9b Android Runtime(ART)虚拟机和Dalvik虚拟机都使用分页(Pag ...
- Android内存管理知识百科
/ 今日科技快讯 / 近日,据国外媒体报道,美国电动汽车制造商特斯拉在当地时间周二提交的一份文件中表示,公司今年上半年从政府获得了与员工工资相关的补贴,以帮助减少疫情对业务的影响.特斯拉首席执 ...
- Objective-C内存管理知识总结
原帖地址 http://www.cocoachina.com/bbs/read.php?tid-12760.html Objective-C的内存管理机制是比较灵活的,即可以拿来像C/C++一样用, ...
- iPhone/Mac Objective-C内存管理教程和原理剖析
版权声明 此文版权归作者Vince Yuan (vince.yuan#gmail.com)所有.欢迎非营利性转载,转载时必须包含原始链接http://vinceyuan.cnblogs.com/,且必 ...
- Linux内存管理知识总结(一)
以下源代码来自 linux-5.10.3 内核代码,主要以 x86-32 为例 Linux 内存管理是一个很复杂的"工程",它不仅仅是对物理内存的管理,也涉及到虚拟内存管理.内存交 ...
- Mac OS电源管理大解析
睡眠模式-hibernatemode-也就是Mac在睡眠模式下面的工作方式,目前主要有3种. hibernatemode 0:睡眠时内存保持供电,其他部件断电,内存数据不写入硬盘.优点是可以快速唤醒. ...
最新文章
- python和c语言相通吗_python和C语言互相调用的几种方式
- 河南省第十三届ICPC大学生程序设计竞赛 【部分题题解】
- [JavaScript] 使用ArrayBuffer和Blob编辑二进制流 下载文件
- mysql事务隔离级别 花_mysql事务隔离级别
- 帆软报表判断传入条件是否为空,根据逗号分隔
- 某一天,忽然发现自己坚持不下去了。(无关计算机,只是一些自己的困惑和感想)
- oracle vm突然黑屏了
- 使用windows内存-内存映射文件
- web前端学习资源分享
- WPF实现选项卡效果(1)——使用AvalonDock
- linux修复windows,Linux十大妙用:充当Windows修复工具
- 测试技术总监需要具备哪些能力
- 计算机考研需要过英语六级吗,研究生毕业要过英语六级吗 研究生毕业对英语六级有要求吗...
- WebGL/ThreeJS项目结构介绍2-创建地板并贴图
- python 读视频_Python3读取视频保存视频
- R语言基础知识入门学习(一)
- 外贸软件如何提升进出口公司业绩 实现降本增效
- NR PRACH(六) type 2(2-step) RA基本过程及时频域映射
- vue中对echarts折线图设置基准线/警告线,可在输入框输入想要的值,并改变已有的基准线的值。
- Word文档粘贴的表格中文字有淡灰色背景的去除方法