Answers:
不活跃的记忆由于糟糕的名字而受到了可怕的说唱。它应该被称为“使Mac在第二,第三和第四次执行相同任务时真正快”内存,不过这也是一个糟糕的名字。
苹果在引入了一些新功能并添加了压缩内存后重新编写了活动监视器,因此其中一些不再适用于未显示“非活动内存”的macOS,但这仍然适用于对此记录的Mac OS X内存管理活动监视器的版本:https : //support.apple.com/zh-cn/HT201538
这是我向OS X上虚拟内存概念的新手解释的事情:
当Free + Inactive少于总数的1/3时,就会出现问题,然后事情真的会变慢。
不活动的内存是奖励速度/双重任务RAM。它可以立即免费提供,但如果系统正确猜测并将某些内容保留在RAM中供您再次执行,则可以使重复的任务快得多,而且速度更快。它比交换内存快,因为它已经加载到RAM中,并在虚拟内存系统做出很好的猜测时加快了速度。
如果您想知道RAM是否有问题,而不是查看4个类别中的每一个类别(如果算上活动交换,则为5个类别),则可以将W + A与减慢新程序/任务的速度结合起来,将F + I与加快速度的程序结合起来。新程序/任务。您拥有的F + I越多,在RAM需要依靠交换来处理已分配的内存之前,您可以启动的新程序越多。
自从我上面提到过,您实际上并不需要知道交换的工作原理。基本上,当程序处于空闲状态且未使用数日(或数小时)时,系统会将该RAM写入硬盘驱动器,而不是终止程序。这使系统可以改组和处理与内存管理有关的各种事情,并使每个程序都无需相互讨论以同意在系统用尽时谁将使用较少的内存。
这是如何使用非活动RAM的真实示例。
随着系统学习将这两个应用程序需要运行的内容保持在不活动的RAM中,您应该看到第二次/第三次启动的戏剧性加速。
在您的情况下-“有线”和“活动”的总数意味着可能会发生某些磁盘交换,并且Mac的速度不如以前快,因为您的非活动RAM不足以存储您可能需要重用的所有内容。如果您有快速的SSD驱动器,则此RAM分配是可以的,并且您可以将数据减少到接近F的总RAM的1/4,而不是开始减慢一旦RAM的不到1/2的F + I。 + I在看到明显的缓慢之前。这些指导原则是一般性的,您需要观察vm_stat 15
或间隔一定的时间,以确保连续不断地进行中等容量的交换不会使Mac变慢。
Mac上的问题是,除非我在命令窗口中进行手动清除,否则似乎永远不会清除“非活动”内存。它会不断累积,直到出现一个弹出窗口告诉我杀死应用程序为止。即使杀死了我所有的应用程序,我仍然有太多的不活动内存来运行任何东西。因此,在运行最新版本的Mountain Lion的Mac上,当可用内存不足时,非活动内存会被回收是不正确的。我在某个地方的某个应用程序锁定了一块永远不会释放的不活动内存,或者iOS中存在一个错误。(我有8GB的物理内存,应该足够了!)
vm_stat
发生时报告的内存状况如何?是什么使您如此确定“活动”中可能存在“过多”的非活动内存?就我而言,这是所有传闻,没有任何可支持的代码,实际上在内核中运行。
感谢所有的海报和评论者,这对我来说是一个很有启发性和有用的话题。我最近的经验可能对某人有用。我将Mac Mini与OS X10.8.1和16G RAM完全结合使用,以制作将在其他地方运行的原型软件。我可以向您保证,我不会“在几分钟后返回Facebook或退出它后重新启动Word”,而是在Macbook上执行。
我的任务是整理一大堆数据,I / O很耗时,所以概念是一次读取尽可能多的数据以进行夯实,在那里进行处理,然后将其写回到磁盘,然后重复该过程直至完成,这需要几个小时。我看到的是,每次读取新的数据块时,不活动的内存都会跳跃-我假设系统AI假设我可能想再次使用旧的块,而我不希望这样做-而免费的内存下降。
经过此过程的几次迭代后,可用内存减少到只有几MB,不活动的内存将释放更多的MB,然后最终在空闲和不活动的内存之间来回切换几分钟后,不活动的内存将释放一次增加几个GB。所有操作都如@bmike所述,vm_stat 15和“活动”监视器都显示0页。
除了可能不完全一样。有好几次情况一直在畅快地进行着,我下班去喝咖啡或晚餐,并且没有监视该过程,不应该发生的事情突然发生了,该过程突然中断了页面输出并减慢了速度。指出可能是我糟糕的代码导致了问题,但我希望我可以关闭不活动的内存只是为了消除这种可变性源。坏了吗 我完全不会这么说,但是我想我想我的用例没有对内存管理进行优化。
基本上坏了。当可用RAM较低时,应该自动“清除”不活动的RAM。为以前打开的应用程序保留RAM的目的是什么,希望用户再次打开它?可用RAM不足的事实表明现有的ACTIVE应用程序可能没有足够的RAM,并且正在交换。为封闭的应用程序保留GB RAM仅是愚蠢的。根据苹果自己的描述,闲置RAM不足时应自动清除或借用不活动RAM。显然不是这样。
vm_stat
您认为有多少可用页面“没有更多可用RAM”?当Mac处于“慢速”状态时,页面输入和页面输出的作用是vm_stat 1
什么?每当我在有问题的系统上观看此消息时,我都喜欢vm_stat 15
在终端窗口中运行(或登录到文件系统),以便在确定是否/何时调优诸如传呼机。此示例具有100 MB的可用RAM,因此即使在页面压力较大的情况下也不太可能。
本质上,不活动的内存使打开以前关闭的进程的速度更快。如果您发现Mac OS占用了过多的内存,那么您并不需要,例如在Safari或Chrome上打开的数十个选项卡中一样,只需在终端中使用“清除”命令即可。在OS X Mavericks中,只需使用“ sudo purge”(您需要输入密码)即可。当您需要再次打开某些东西时,它节省了宝贵的时间,但是如果您想玩RAM密集型游戏或打开RAM饥饿的应用程序,我绝对建议您使用purge命令。