这个帖子下面的大多数回答,其实是错的……
系统自身的缓存并不会算在某个进程上面,因为它们都是打开过然后又被关闭的程序或者文件。在资源监视器的“已缓存文件”一栏能看到这部分的大小。
如果是软件内部自己实现的缓存,那并不会区分 macOS 还是 Windows 。在任何一个系统上,看起来都是“很吃内存”,因为操作系统无法得知这部分内存用于何种用途,也不会主动去回收它们。
“内存”列显示的内存,其实也不是进程真正占用多少内存。比如这个例子:
我加载了一个 2GB 的模型,实际上也需要占用 2GB 物理内存空间作为显存使用,但是“内存”列并不会显示出来。
而且,如果进程的大部分内存不活跃而被压缩,那么“实际内存”这一列其实能显示更小的数值。
这一列代表“真正在物理内存里占用的大小”,反而更接近 Windows 任务管理器中的含义。
而 macOS 的“内存”在 Windows 任务管理器里,比较相似的属性是“提交大小”。
现代的操作系统都会用空闲内存作为缓存使用,并没有所谓“macOS 相比起来会尽可能多用内存”的特性。如果你看到一个程序非常吃内存,那么有极大的可能,这个程序确实非常吃内存,而不是什么机制在起作用。该重启的时候就应该重启,不然硬盘寿命顶不住。