iMac 配备了8GB的内存,但是内存总是几乎满了。

我有一台27英寸的iMac(2012年底,OS X 10.9.2),内存为8GB。即使我认为我没有运行那么多东西,内存的使用量总是超过7GB,这导致程序偶尔会卡住,电脑感觉有时会变慢。 我运行的最重的东西是一个已经停用的Windows笔记本的Parallels虚拟化(用于我的仅限Windows的程序;与工作相关)。然后我主要使用Chrome浏览器(10-20个标签,其中一些带有YouTube视频)。当然,我还打开了其他一些东西,比如邮件、Evernote等。但我不认为一台8GB内存的电脑应该被这些东西压垮。我可能错了。 我愿意提供来自活动监视器的进程导出文件。当然,我尝试过查看它,我运行了很多小型进程(对我来说是未知的)--我猜是系统相关的东西。我是长期使用PC的用户,对PC上的进程管理很熟悉,但对Mac上的进程管理不太了解。 你觉得呢?我只是需要更多的内存吗,还是感觉不像是内存的问题? 祝好,

别担心,我的MBR上有16GB的RAM,而且它总是满的。 - kenorb
活动监视器显示什么 - 使用 Parallels 运行 Windows 虚拟机将会占用大量内存。 - mmmmmm
7个回答

因为OSX(以及Windows)管理内存,所以通常很难确定性能问题是否由内存限制引起。从技术上讲,你真正希望操作系统捕获所有可用的内存并根据需要分配,在这种情况下,你会看到所有内存都被“使用”,即使操作系统可能有可用但未分配的内存。 这在OSX和Win7+中有些类似。然而,苹果过去曾经使用许多内存分类(如Wired、Swap、Real等),使得情况变得混乱。 幸运的是,您正在运行Mavericks,而Mavericks的一个新功能是Memory Pressure图表,可以在苹果支持文档http://support.apple.com/kb/HT5890中找到描述。

enter image description here

基本上,如果内存图显示为红色,那就需要更多的RAM;如果是绿色,那就没问题。我建议阅读文章以获取更多细节,但红、黄、绿是一个很好的视觉工具,可以帮助指导您可能遇到的问题。 根据您的型号,我个人发现Mac在硬盘访问速度方面比内存限制更容易出现问题,所以如果您的iMac没有SSD,那么它会产生巨大影响(不过,这需要相当多的工作来安装在您的iMac上)。

像任何现代操作系统一样,OS X 尽可能地利用内存。例如,OS X: - 当应用程序退出时,将数据保留在内存中,以便在再次启动时节省时间; - 从您的(慢慢的)硬盘缓存最近使用的文件,以便以后更快地访问。 显然,如果需要的话,这些内存仍然可供其他用途使用。但是系统理所当然地认为“现在”没有必要“释放”它:它等待需要出现。 这意味着,在运行一段时间后,您的计算机将始终显示您的内存已经完全使用或几乎完全使用。这并不意味着您的RAM不足,只是系统不会浪费它。 要确定您是否真正缺少内存,主要应检查是否经常进行交换。我建议参考 @cmason 的优秀回答。

1感谢您的编辑。我还想知道压缩内存是否也是问题的一部分。 - Blaisorblade

给自己买个固态硬盘吧。10.9.2非常擅长高效地管理你的内存,你不用担心。正如上面所说,OSX会尽可能保持尽可能多的内存使用,出于健康的原因。 8GB对于正常使用来说是合适的(在这种情况下,不考虑大量视频/图形编辑)。 我有一台2011年初的15英寸MBP,配备8GB内存,当我安装了一个固态硬盘后,它变成了一台完全不同、速度更快的机器。我在VirtualBox上运行Win7虚拟机,虚拟机存储在外部FireWire 800驱动器上,没有问题。

我喜欢@cmason的回答,但我想澄清一些基础的事情。

你在这里有两个不同的问题:(1)你报告的延迟很可能是硬盘引起的,正如一些答案中所暗示的。在硬盘上找到正确的位置通常需要大约10毫秒的时间,并且这些延迟会逐渐累积,对用户可见。(2)内存已满是因为内存被用作磁盘的缓存。

唯一的关系是当系统需要再次从磁盘读取相同的内容时,使用更多RAM作为缓存可能会有帮助(如果所需内容保存在RAM中)。

但是,每当系统从硬盘读取新内容时,只有更快的硬盘(如SSD)才能提供帮助(或者,某些系统尝试猜测系统将要从磁盘中读取的内容,并提前读取它,但这在一般情况下并不能产生奇迹,因为计算机没有预测未来的水晶球)。


升级RAM便宜又容易,所以不要试图理解OS X下的内存管理复杂性,直接去做吧。 SSD升级昂贵且困难(尤其是在iMac上),但会带来更为明显和立即的改善。虽然我从未尝试过,但我猜想即使是通过外部Thunderbolt连接的SSD运行OS X,速度也会比内部旋转硬盘快(尽管比内部硬盘慢)。 很可能,在Parallels和Chrome之间,OS X最终会将内存交换到磁盘上,而旋转硬盘的磁盘I/O速度非常慢。我的经验是,浏览器在使用一段时间后不愿释放内存,所以当你注意到问题时,尝试重新启动Chrome。这很可能比重新启动Parallels更容易。

9关于你的第一段,这完全是硬件制造商想让你使用的天真的“解决方案”。“只是多买些内存”,不要这样!要明白你在使用什么以及为什么。不要让资本家得逞! - Lightness Races in Orbit

8GB的内存对你的Mac来说是足够的,兄弟...我有一台2014年的MBP,也是8GB内存,遇到了同样的问题。内存看起来似乎总是几乎用完了,但实际上只是在应用程序和文件缓存中...我个人喜欢显示所有的内存而不是在缓存中,但能怎么办呢?哈哈... 顺便说一下 - 我有一个SSD。我一直都是Mac用户,可以诚实地告诉你,这真的会有很大的区别...从通常需要1分钟半左右的启动时间,到大约5秒的启动时间...绝对不是吹牛的 ;)

人们推荐升级内存——浪费你的时间和金钱。我已经在全新的30英寸台式Mac上监控这个问题有一段时间了,一开始有8GB的内存。内存使用量随着时间的推移不断攀升,应用程序没有释放任何内存,3天后Firefox占用4GB内存,其他应用程序占用大量内存,系统几乎无法使用,非常慢。 我升级了另外8GB,总共16GB。你知道发生了什么吗?3天后所有的16GB都被用完了,Firefox占用5GB,Atom文本编辑器占用4GB,其他应用程序类似,邮件占用3GB。 这些数字太疯狂了,它们不正常,在真正的PC上,比如Windows或Linux,是不会发生这种情况的。这完全是苹果操作系统的问题和内存管理不善。 所以不要购买更多的内存,省下这笔钱。我还在寻找希望能通过编程解决强制释放应用程序内存的方法。 更新:事实证明,某些应用程序足够聪明,有自己的内存管理,可以编辑Firefox的“about:config”来进行调整。
browser.cache.memory.enable - true
browser.cache.memory.capacity - something sensible
config.trim_on_minimize - true
browser.sessionhistory.max_entries - 10
nglayout.initialpaint.delay - 0

这里有答案还是只是一通牢骚?如果你想回答这个两年前的问题,请编辑一下以解决提问者所提出的问题。如果不这样做,你可能会被投票否决。 - fsb