Mac 的内存管理机制是怎样?怎么选内存?

2022-08-03 22:37:57 +08:00
 hucheng518

从内存 8G 的 M1 过渡到 24G 的 M2 ,在活动监视器里看到一个有趣的现象: 之前 8G 的时候,普通应用占用内存在 6-7G 左右,剩下大约 20%左右的空余。 现在换成了 24G 的内存,干同样的事情,占用内存升到了 12-13G 。 难道这内存使用也是和机器本身的内存大小相关的吗?或者 8G 的 M1 是把内存从存储 swap 过来了? 日常使用状态下,无论是从存储借还是直接从内存读取,两者的速度没有感觉太大区别。

4906 次点击
所在节点    Apple
15 条回复
Awes0me
2022-08-03 23:23:51 +08:00
看颜色别看数字,只要不是经常变黄就证明你不需要更大的内存
Pierson
2022-08-03 23:55:47 +08:00
据我的观察,内存在 80 之前很少清除。只要我不开虚拟机,每次去看内存占用都是 80 ,不多不少。
blackcatxh
2022-08-04 01:02:16 +08:00
你只需要看一个东西:内存压力的颜色

绿色=充足
黄色=吃紧
红色=不足
aireason
2022-08-04 08:51:19 +08:00
如果你内存空间比较大,那么 cpu 就很少会压缩内存里的数据,内存压力也不会变黄,性能不会因为内存不足受到影响。你当时用 8g 的 m1 时,由于内存不够用,cpu 需要分出更多性能去管理内存。

现在 monterey 上用 swap 的机制比较保守了,内存压力很大的时候才会去 swapping ,保护硬盘,但是比较耗 cpu 性能。
wanguorui123
2022-08-04 09:04:40 +08:00
Mac 的内存优化的好,但是某些程序会内存泄露,导致 8G ,16G ,32G 都不够用
wanguorui123
2022-08-04 09:05:14 +08:00
@wanguorui123 大型项目建议上 64G
muntoya
2022-08-04 09:51:22 +08:00
注意观察交换和压缩,物理内存不够都会放这里。压缩的部分读到前台延迟很小,如果软件本身消耗内存不大切换时感觉不到。
LeeeSe
2022-08-04 09:59:26 +08:00
@wanguorui123 实际上我发现经常是 mac 自带的应用内存泄漏比较严重
wanguorui123
2022-08-04 10:18:15 +08:00
@LeeeSe 我也发觉,尤其是 Safair ,WindowManager ,苹果现在简直摆烂
ratel2018
2022-08-04 11:16:27 +08:00
内存数据写入 swap 也会使内存压力降低
234ygg
2022-08-04 15:17:15 +08:00
绿色无忧
黄色 swap 到 14GB 也没什么区别,网页 swap 回来慢半秒的样子
红色 加钱升级

pro 的话交换回收快,16 和 32 几乎没有任何性能区别,16 的甚至因为 swap 掉的多,内存压力有时候更低。
air 的话,不把 air 当 air 用的情况下 16 和 24 有一点差异
其实苹果基本上每年都有提到 又优化了回收,没什么人注意罢了
8N3FgRqfNPzGJThQ
2022-08-05 07:01:07 +08:00
@234ygg 虚拟机从来不关 16G 够用吗?
234ygg
2022-08-05 14:33:36 +08:00
@8N3FgRqfNPzGJThQ
#12
只能说虚拟机确实是为数不多上 32 的理由,Mac 端可用内存掉到 8GB 的话还是会有相当大性能衰减的
8N3FgRqfNPzGJThQ
2022-08-06 06:55:57 +08:00
@234ygg 3Q 奈斯
8N3FgRqfNPzGJThQ
2022-08-06 06:58:19 +08:00
@8N3FgRqfNPzGJThQ 8 核和 10 核 CPU 差别大不大呢 比如经常解压缩文件

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/870510

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX