指南/如何释放Mac的内存
如何释放Mac的内存,以及什么时候不需要释放
简要回答
要释放Mac的内存,打开活动监视器,点按“内存”并按“内存”列排序,然后退出或重新打开排在最前面的App。浏览器、聊天和代码编辑器、虚拟机、Docker和本地AI模型占用最多。先看看标签页底部的“内存压力”:如果是绿色,就没什么需要释放的,因为macOS会把空闲内存用来存放文件,一旦有App需要就会立刻让出来。内存清理App和sudo purge都没用。Vitals是一款Mac系统监控工具,能显示每个App的内存占用(已计入帮助程序),并在某个App不断增长时提醒你。
如何释放Mac的内存
- 01 打开活动监视器(按下⌘空格键并输入它的名称),点按“内存”。
- 02 查看底部的“内存压力”。如果图表是绿色,到这里就可以了:Mac的内存够用,不管“已使用内存”看起来有多满。
- 03 点按“内存”列标题进行排序,并选取“显示”→“所有进程,分层显示”,让每个App的帮助程序排在它下面。
- 04 退出排在前面、你没在用的App。如果某个正在用的App比平时大了很多,就存储你的工作,退出后重新打开它。
- 05 如果是浏览器,关闭或重新载入最占内存的标签页,而不是退出整个浏览器。浏览器自带的任务管理器会显示是哪些。
- 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 | 退出后重新打开它,并更新它 | 它在一两个小时内的“内存”数值 |
什么时候不需要释放内存
真正能释放内存的做法
内存属于申请它的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,并在询问后将其退出。
常见问题
如何清理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内存不足时发送通知。