用虚拟内存不是损耗磁盘吗
2
sadfQED2 2021-01-07 16:34:31 +08:00 via Android
操作系统觉得你这个数据很少使用,于是就会给你挪到虚拟内存,从而让物理内存更充足
Linux 下面可以调整虚拟内存的使用权重,mac 不知道有没有类似的 |
3
yulgang 2021-01-07 17:09:35 +08:00
如果 Mac 频繁的将内存写到虚拟内存,说明物理内存还是有点少,有条件就加内存,没有就无视吧。Mac 不想 Linux 可以调整 swappiness
|
4
Bolvvv 2021-01-07 18:27:26 +08:00
同样的情况,不知道是什么策略。
![image.png]( https://i.loli.net/2021/01/07/2qvT1QwJdXZipGb.png) |
5
shyrock 2021-01-07 18:39:44 +08:00
反过来说,如果优先把物理内存用完,这时候有新任务开出来,是不是需要先释放一部分内存才能让新任务执行,这样感觉新任务的启动速度就很慢了。所以合理的做法是保留一些物理内存。
|
6
secondwtq 2021-01-07 20:32:35 +08:00
楼主不如给个 Activity Monitor 的截图 ... 因为我这没有新版 macOS,也没有 iStat Menus
根据网上的截图,macOS 的 Activity Monitor 把物理内存占用分成“已使用内存”和“已缓存文件”两部分,而“已使用内存”进一步被分为“应用内存”“联动内存”和“已压缩”三部分,所以楼主的实际物理内存占用是“应用内存”+“联动”+“已压缩”+“缓存”,which 差不多接近了 16GB 。 这个“活跃”就不知道是哪来的了 ... |
7
secondwtq 2021-01-07 20:43:27 +08:00
查了下资料,好像 macOS 把某种内存又分为了“活跃”和“非活跃”两类,需要换出到交换区时应该会优先换出“非活跃”页。iStat Menus 里面的“实际可用”搞不好“实际”把“非活跃”给算进去了。
|
8
billlee 2021-01-07 22:27:21 +08:00
1. 系统觉得有些文件缓存更常用,所以选择优先把内存给这些缓存用
2. 之前内存压力大的时候,把部分数据写入了虚拟内存,现在压力降下来了,但没人去读那部分数据,系统就把它留在那里 |
9
zictos 2021-01-07 22:32:28 +08:00 2
内存不应该吃满,应该预留一些面对突发的大内存需求,不然你突然开启一个很占内存的程序就要卡死。不要听什么“内存是拿来用的,内存大就可以尽情使用”之类的话,适当可以,但不应该太过,必须尽量预留一点。
|
10
M1hahahaha 2021-01-07 22:35:48 +08:00 1
不用纠结这些,硬盘在那,不消耗它,它也没法给你创造好吃的,不如给你干的能干的事。
Apple 这项技术,10 年了吧,没有说因为这项技术让客户的硬盘损坏或者换电脑,在你换电脑时,他还能使劲的消耗个没完,经历比你旺盛。 |
11
Elethom 2021-01-07 22:51:15 +08:00 via iPhone
你 inactive 没显示。
|
12
Lemeng 2021-01-07 23:03:14 +08:00
预设,不用纠结
|
13
bojongle 2021-01-07 23:09:51 +08:00
就举个最简单的例子,你的操作系统只有 kernel 会在 ram 里,剩下的部分都在硬盘里。操作系统没学好啊你
|
14
typetraits 2021-01-08 09:47:21 +08:00
这是 macOS 的默认内存策略,pressure 大于 60%还是 65%时就会开始使用交换文件,可以使用 memory_pressure 命令测试一下
内存够大的话可以换种策略,但是不能完全禁用,进恢复模式的终端里执行 nvram boot-args="vm_compressor=2" 具体定义在 https://opensource.apple.com/source/xnu/xnu-7195.50.7.100.1/osfmk/vm/vm_pageout.h.auto.html #define VM_PAGER_COMPRESSOR_NO_SWAP 0x2 #define VM_PAGER_COMPRESSOR_WITH_SWAP 0x4 |
15
louettagfh 2021-01-08 11:27:56 +08:00
你没有理解操作系统中什么是虚拟内存,什么是物理内存
|
16
l33ch 2021-01-08 16:46:33 +08:00
|
17
aneostart173 2021-01-09 09:58:17 +08:00
我觉得你想说的是 swap space 。
|