这是我的第二个问题,继我的第一个问题(如何检测 CPU 是 32 位还是 64 位)之后。
我现在知道如何确定我的 CPU 是否具有 64 位架构。但是拥有 64 位架构并不意味着它可以寻址 2^64 (=16,777,216 TB)。
例如:
如果我运行这段代码:
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor");
ManagementObjectCollection cpus = searcher.Get();
foreach (ManagementObject queryObj in cpus)
{
Console.WriteLine("AddressWidth: {0}", queryObj["AddressWidth"]);
Console.WriteLine("DataWidth: {0}", queryObj["DataWidth"]);
Console.WriteLine("Architecture: {0}", queryObj["Architecture"]);
}
这将导致:
AddressWidth: 32 (meaning, my OS is 32-bit)
DataWidth: 64 (meaning, my CPU is 64-bit)
Architecture: 9 (meaning 64-bit architecture)
现在我想知道我的 CPU 支持的最大内存。如果我在 Internet ( http://ark.intel.com/products/65520 )上查找我的 CPU,您会发现它只能处理 32GB 的内存。现在如何从我的计算机中提取这些信息?
警告:这个问题不是关于我的操作系统支持多少内存。我使用的是 WinXP,32 位,所以它只支持 4GB。