指南/如何释放Mac的内存

如何释放Mac的内存,以及什么时候不需要释放

Atta 🐬

Vitals创始人

发布于

简要回答

要释放Mac的内存,打开活动监视器,点按“内存”并按“内存”列排序,然后退出或重新打开排在最前面的App。浏览器、聊天和代码编辑器、虚拟机、Docker和本地AI模型占用最多。先看看标签页底部的“内存压力”:如果是绿色,就没什么需要释放的,因为macOS会把空闲内存用来存放文件,一旦有App需要就会立刻让出来。内存清理App和sudo purge都没用。Vitals是一款Mac系统监控工具,能显示每个App的内存占用(已计入帮助程序),并在某个App不断增长时提醒你。

如何释放Mac的内存

  1. 01 打开活动监视器(按下⌘空格键并输入它的名称),点按“内存”。
  2. 02 查看底部的“内存压力”。如果图表是绿色,到这里就可以了:Mac的内存够用,不管“已使用内存”看起来有多满。
  3. 03 点按“内存”列标题进行排序,并选取“显示”→“所有进程,分层显示”,让每个App的帮助程序排在它下面。
  4. 04 退出排在前面、你没在用的App。如果某个正在用的App比平时大了很多,就存储你的工作,退出后重新打开它。
  5. 05 如果是浏览器,关闭或重新载入最占内存的标签页,而不是退出整个浏览器。浏览器自带的任务管理器会显示是哪些。
  6. 06 等一分钟,再看看“内存压力”。它应该已经回到绿色,“已使用的交换”也应该不再增长。

如果退出占用内存的App后内存压力仍然是红色,就重启Mac。卡住的系统进程占着的内存,没有别的办法能释放。

大多数关于释放内存的建议,一开始就看错了数字。“已使用内存”接近总量正是macOS的设计:没人用的内存会被用来存放最近用过的文件,一旦有App要用就会立刻让出来。要紧的是App能否得到它要的内存,而这正是“内存压力”显示的内容。它变黄或变红时,通常是一两个App占了大部分内存,下表说明如何释放每一种。

是什么占着内存,如何释放

是什么在占用如何释放查看位置
开了很多标签页的浏览器 关闭或重新载入最占内存的标签页,并在Chrome中打开“节省内存” 浏览器的任务管理器
Slack、Teams、Discord、VS Code以及其他用网页技术构建的App 不用时退出它们,或者每天重新打开一次 活动监视器→“内存”,并选取“显示”→“所有进程,分层显示”
Parallels、VMware Fusion或UTM中的虚拟机 关掉不用的虚拟机,或在它们的设置中少分配一些内存 活动监视器→“内存”
Docker 在Docker Desktop中调低Memory limit,或打开Resource Saver docker stats
本地AI模型 卸载模型,或退出运行它的App 活动监视器→“内存”
不断增长的App 退出后重新打开它,并更新它 它在一两个小时内的“内存”数值

什么时候不需要释放内存

闲置的内存就是浪费的内存。macOS会把最近用过的文件以已缓存文件的形式留在内存中,再次打开时就能瞬间完成;在把任何内容移到磁盘之前,它还会先压缩App没在用的内存。两者都算作已使用的内存,但有App需要空间时都会让出来。

所以,一台16 GB的Mac用了15 GB,而内存压力是绿色,那它就是健康的;这时释放内存只会让它变慢,因为macOS还得把那些文件重新读回来。工作时内存压力变黄或变红,或者Mac变慢且已使用的交换一直在涨时,才需要释放内存。

真正能释放内存的做法

内存属于申请它的App,所以要释放它,就得从那个App下手。

  • 退出不用的App。在Mac上,关掉App的最后一个窗口,App往往还在运行;按下⌘Q才能退出它。
  • 关闭不需要的浏览器标签页,尤其是网页App和视频。如何找出很占内存的标签页,请参阅Chrome占用内存过多。
  • 在“系统设置”→“通用”→“登录项与扩展”中,别让从来不用的App在登录时打开。
  • 给虚拟机和Docker少分配一些内存。它们运行时会一直占着你分给它们的内存。
  • 重启存在内存泄漏的App:你用得并不比平时多,它的内存却一直在涨。更新它往往能修复泄漏。

没用的做法:内存清理App和purge

内存清理App和sudo purge命令会清空文件缓存,并把App的内存挤到磁盘上。数字会暂时下降,然后macOS又把同样的文件和页面读回来,在读回之前Mac反而更慢。原本占用内存的东西一个都没停下来。

在活动监视器中退出系统进程也没用。macOS会重新启动它们,而且其中很多进程,例如WindowServer和kernel_task,之所以大,只是因为你的App要它们干活。

什么时候Mac真的需要更多内存

如果只开着必需的App,做每天的日常工作时“内存压力”都会变黄,说明对这些工作来说Mac的内存不够用。Apple silicon Mac的固态硬盘交换速度很快,所以黄色还能凑合;红色,或者切换App时Mac会卡住,就不行了。

Apple silicon Mac中的统一内存是芯片的一部分,无法事后加装。在换下一台Mac之前,能做的就是少同时打开几个App,用更轻量的App替代最占内存的那些,以及给虚拟机、Docker和AI模型少分配一些内存。买新Mac时,用这台Mac上的“内存压力”来判断需要多大内存。

Vitals能多做什么

Vitals会显示每个App的内存占用(已计入帮助程序),并在某个App不断增长时提醒你。

  • 每个App一行,已计入它的帮助程序,所以浏览器或Slack只有一个数值:接近你退出它时能收回的量
  • 点按一个浏览器,即可看到它的内存按标签页、扩展、图形和浏览器本身拆分;打开“容器”标签页可查看每个Docker容器的内存
  • 每个App 30天的内存数据,让你分清一直都很大的App和正在增长的App
  • App占用的内存越来越多时,以及Mac内存不足时,都会发送通知,并指出占用最多的两个App
  • 如果你愿意,可以在菜单栏中显示内存压力,代替已使用的内存

须知

  • Vitals不会释放内存,也不会清除缓存。它会显示该退出哪个App,并在询问后将其退出。
购买Vitals $9 首发期$9,之后$29。14天内可退款。

常见问题

如何清理Mac的内存?

退出不用的App,从活动监视器“内存”标签页中排在最前面的开始,并关闭很占内存的浏览器标签页。如果之后内存压力仍然是红色,就重启Mac。

Mac把内存全用光了,有害吗?

如果“内存压力”是绿色,就没有害处。macOS会用缓存的文件填满空闲内存,一旦有App需要就会马上让出来。只有内存压力为黄色或红色时才要紧。

sudo purge能释放Mac的内存吗?

它会清空文件缓存,所以“已使用内存”会暂时下降。之后macOS会把那些文件重新读回来,所以Mac会慢一阵子,而且没有哪个App比之前多得到内存。

内存清理App在Mac上有用吗?

没用。它们挤出去的内存,App和macOS会马上再要回去。数字好看一分钟,Mac并不会变快。

Mac需要多大内存?

够你在日常工作中让“内存压力”保持绿色就行。对大多数人来说是16 GB;运行容器或虚拟机的开发者,以及运行本地AI模型的人,往往需要32 GB或更多。

有没有能显示是哪个App在占用Mac内存的App?

Vitals会显示每个App的内存占用(已计入帮助程序),保留30天的记录,并在某个App不断增长或Mac内存不足时发送通知。

术语表中的相关条目

更多指南