答案1
微软程序员的数学不太好:
8 GB = 8 589 934 592
7.88 GB = 8 461 085 573
TotalPhysicalMemory = 8 458 973 184
8 GB - TotalPhysicalMemory = 8589934592 - 8458973184 = 130 961 408
我们在这里看到的是发布 7.88 GB 这个数字的微软程序员四舍五入,从而产生了大约 130 MB 的内存,而这些内存根本不存在,因为这只是 GB 这个非常大的数字的一小部分。更正确的说法应该是四舍五入,这对于计算和更好的数学来说会更安全,甚至可以添加更多的小数位,从而减少舍入误差。
您可以运行命令systeminfo | findstr Memory
来获取更多数字。
物理内存的总大小。请注意,在某些情况下,此属性可能无法返回物理内存的准确值。例如,如果 BIOS 正在使用部分物理内存,则结果不准确。要获得准确值,请使用
Capacity
中的属性Win32_PhysicalMemory
。
因此,您可以使用 wmic,但您得到的是什么真的不清楚。至少,TotalPhysicalMemory
似乎是我发现的所有数字中最小的一个,因此使用它可能是安全的。
答案2
WMIC 计数器TotalPhysicalMemory
是已安装 RAM 的子集,Windows 可将其用作普通 RAM。换句话说,您应该根据该数字来评估进程的工作集等数字。它也是系统提交限制的一个因素(另一个因素是当前页面文件大小)。
它不包括任务管理器所称的“硬件保留”。这主要是无法访问的 RAM,因为其地址与固件的地址、I/O 设备定义的“寄存器空间”的地址等相冲突。这就是您购买和安装的 8 GiB 与 WMIC 报告的“总数”之间存在差异的主要原因。
由于您在评论中提到了“空闲”,我应该提到 WMIC 计数器Win32_OperatingSystem.FreePhysicalMemory
对应于任务管理器的“可用”显示。这是立即可用的 RAM 量可用的用于满足新分配的硬页面错误,而无需从使用它的进程中获取它,也不必先将任何旧内容复制到页面文件或映射文件等。它是资源监视器显示的“待机”和“空闲”的总和。(是的,他们的术语不一致 - 我想说这是不可原谅的。)
Win32_operatingsystem.FreePhysicalMemory
您只需从中减去即可获得“已使用”的数量Win32_computersystem.TotalPhysicalMemory
。