谢邀。

确实是内存越大,占用的内存越多,这里指总数而不是指比例。以下讨论仅限于 Windows 环境。

比如同样的系统,你装 1GB 内存,开机以后不开任何东西看到的内存使用总量,再装 2GB 内存,开机以后不开任何东西,看到的内存使用总量肯定是 2GB 的比 1GB 的要多。

原因有:

1、管理内存本身需要占用内存,更术语一点是因为页表也要占内存。内存中通常以 4KB 字节为单位划分内存页,内存页是操作系统最小的内存管理单元。操作系统需要管理内存页,那么就需要给所有内存页建立索引来描述其状态,所以当内存总数增多的时候,内存页的索引项必然也增多,因为索引也是在内存里的,所以使用的内存必然要多一些,这是其一,但这不是大头。

2、操作系统的很多驱动会根据内存规模动态的决定要使用多大内存,以 FAT 文件系统驱动为例,它会根据当前操作系统的内存总数决定延迟关闭的文件总数,内存小的时候,延迟关闭的文件总数是 16 个,内存多的时候是 256 个。微软提供了一个 API 是 MmQuerySystemSize 专门用于查询系统内存规模。多数驱动程序都会根据这个 API 返回值来动态增长缓存规模,所以内存越大,被占用的内存越多,这是正常的。

需要说明的是,这是一种好事,因为缓存多,速度通常更快。