了解OS X中的压缩内存

内存压缩可以提高你的Mac的性能

随着OS X Mavericks的发布,Apple改变了在Mac上管理内存的方式。 随着内存压缩功能的增加,Mac可以在保持或提高性能的同时以更少的内存实现更多功能。 在较早版本的OS X中,内存使用是围绕一个非常标准的内存管理系统构建的。 应用程序请求分配RAM,系统完成请求,并且应用程序在不再需要RAM时将其返回。

操作系统负责大部分跟踪有多少RAM可用以及谁在使用它的肮脏工作。 如果所需的RAM量不可用,操作系统也会计算出该怎么做。 最后一部分是最重要的,因为系统试图利用虚拟RAM (SSD或硬盘驱动器上的交换空间)时,可能会对Mac的性能产生不利影响。

苹果甚至提供了一个非常漂亮的工具, 活动监视器 ,除此之外,还可以监视Mac的RAM如何被使用。 尽管活动监视器仍然可用,但其内存监视功能已经发生了巨大变化,它模仿了Mac通过使用压缩内存能够更好地使用RAM的方式。

压缩的内存

压缩的内存不是苹果公司的新产品或独家产品。 计算系统长期以来一直在使用各种形式的内存压缩。 如果您在80年代中期和90年代早期使用过Mac,那么您可能会记得Connectix公司的RAM Doubler等产品,它可以压缩存储在RAM中的数据,从而有效地增加Mac可用RAM的数量。 我记得当我的Mac Plus启动时看到RAM Doubler图标出现。 相信我,只有4 MB内存的Mac Plus需要RAM Doubler可以提供的所有帮助。

随着计算机制造商和操作系统开发人员创建更好的内存管理系统,压缩内存实用程序失宠。 与此同时,内存价格正在下降。 性能问题是导致内存压缩系统失去受欢迎程度的另一个因素。 内存压缩算法花费了大量的处理能力。 这意味着,虽然它们让你用更少的物理RAM完成更多任务,但当他们需要压缩或解压缩内存时,它们往往会让计算机停滞不前。

内存压缩正在卷土重来,这主要是因为廉价的多核处理器的出现。 当用于内存压缩的例程可以卸载到许多处理器内核之一时,当内存需要压缩或解压缩时,您不大可能注意到任何性能问题。 它只是成为后台任务。

压缩内存如何在Mac上运行

Mac上的内存压缩旨在通过更好地管理RAM资源并防止或大大减少虚拟内存的使用,从而提高操作系统和应用程序的性能,即虚拟内存是Mac和Mac驱动器之间的数据分页。

使用OS X Mavericks (或更高版本)时,操作系统会查找不活动的内存,这是内存,目前尚未处于活动状态,但仍保存将被应用程序使用的数据。 这个不活动的内存会压缩它所保存的数据,因此数据占用的内存较少。 非活动内存可以是位于后台但未被使用的应用程序。 一个例子是一个文字处理器,它是开放的,但不活跃,因为你正在休息和阅读压缩的内存(顺便说一句,谢谢你停下来读这篇文章)。 在您忙于浏览网页时,操作系统正在压缩文字处理器的内存,释放RAM以供其他应用程序使用,例如用于在网络上观看电影的Flash播放器。

压缩过程始终处于非活动状态。 相反,操作系统会检查RAM中有多少可用空间 。 如果有大量的可用内存,即使存在大量不活动的内存,也不会执行压缩。

随着空闲内存用尽,操作系统开始寻找不活动的内存进行压缩。 压缩从存储在内存中的最早使用的数据开始,并向前推进,以确保有足够的可用内存。 当需要RAM的压缩区域中的数据时,OS即时解压缩数据并使其可供应用程序请求。 由于压缩和解压缩例程在其中一个处理器内核上同时运行,因此在压缩/解压缩发生时,您不可能遇到任何性能损失。

当然,压缩可以实现的限制。 在某些时候,如果您继续启动应用程序或使用吞噬RAM的内存密集型应用程序,您的Mac将没有足够的可用空间。 就像过去一样,操作系统将开始将不活动的RAM数据交换到Mac的驱动器。 但对于内存压缩,对于大多数用户来说,这可能是非常罕见的情况。

即使操作系统不得不将内存交换到驱动器,OS X的内存管理系统也会通过将压缩数据写入全长驱动器段来充分利用压缩的非活动内存,从而提高性能并降低SSD的磨损。

活动监视器和内存压缩

您可以使用“活动监视器”中的“内存”选项卡来监视正在压缩的内存量。 Memory Pressure(存储器压力)图中显示了大量压缩存储器,表明操作系统参与压缩RAM数据的活跃程度。 当没有足够的RAM空间并且必须将内存换出到驱动器时​​,图形将从绿色(小压力)变为黄色(显着压力),最后变为红色。

所以,如果你注意到自从你安装了Mavericks后,你的Mac似乎有更多的反弹,那很可能是因为内存管理的进步和内存压缩的回归。