wmic memphysical get maxcapacity存疑

问题来源:

我查了很多资料,但是还有一些问题。
首先是我的电脑是i7-6700HQ,cpu最大支持64g。
intel官网cpu支持的最大内存
然后是北桥芯片组,支持64g。
北桥芯片组支持的最大内存
然后是插槽,有两个ddr4插槽,最大支持频率2133MHZ。
系统是64位系统,windows10。
但是在cmd里,输入wmic memphysical get maxcapacity。
输出33554432,然后/1024/1024=32g,我怀疑这是单槽支持的最大内存。

同样出现问题的情况:

查阅了很多资料和论坛有几位网友也认为是单槽最大内存。
https://superuser.com/questions/973417/command-wmic-memphysical-get-maxcapacity-gives-wrong-number

在这里插入图片描述
在这里插入图片描述
还有一个网友输出小于总内存的,链接具体找不到了。

类似的问题:
为什么我maxcapacity出现了两行?
https://bbs.csdn.net/topics/394950415?page=1#post-410924785

获取内存最大容量为8G,用软件测试为最大支持容量为16g
https://bbs.csdn.net/topics/391844619

当然还有不少输出0的网友,是因为识别不出来。
https://docs.microsoft.com/zh-cn/windows/win32/memory/memory-limits-for-windows-releases
在官网给的文档中,以前版本的windows系统有些并不适用。

windows源文件:

根据他从源文件https://docs.microsoft.com/zh-cn/windows/win32/cimwin32prov/win32-physicalmemoryarray?redirectedfrom=MSDN里找到的。
MaxCapacity

Data type: uint32

Access type: Read-only

Qualifiers: DEPRECATED, MappingStrings (“SMBIOS|Type 16|Maximum Capacity”)

Use the MaxCapacityEx property instead.

This value comes from the Maximum Capacity member of the Physical Memory Array structure in the SMBIOS information.

Windows Server 2012 R2, Windows 8.1, Windows Server 2012, Windows 8, Windows Server 2008 R2, Windows 7, Windows Server 2008 and Windows Vista: Maximum memory size (in bytes) installable for this particular memory array. If the size is unknown, the property is given a value of 0 (zero).

MaxCapacityEx

Data type: uint64

Access type: Read-only

Qualifiers: MappingStrings (“SMBIOS|Type 16|Extended Maximum Capacity”), Units (“kilobytes”)

Maximum memory size (in bytes) installable for this particular memory array. If the size is unknown, the property is given a value of 0 (zero).

This value comes from the Extended Maximum Capacity member of the Physical Memory Array structure in the SMBIOS information.

源文件说的不是很清楚,尤其是Physical Memory Array structure 到底指的是单个还是总的。

实验给出的一个特殊情况:

最后我找了为自己组机器的朋友做了个实验
在这里插入图片描述
他的结果是268435456,256g。

书籍资料:

另外我在Windows PowerShell for Administration: The Personal Trainer书中找到了
在这里插入图片描述
这里指的却是总内存。

总结:

可能这个方法并不是一个合适的方法检测最大物理内存。

要看具体支持多大内存还是要根据主板和系统。(绝大部分情况不考虑cpu,除非特别老的cpu配上很新的主板。intel在官网就可以查到cpu支持的最大内存,amd官网则没有。)

当然aida64软件测得的结果我认为也比命令行可靠。

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值