C# 我的CPU支持多少内存?
这是我的第二个问题,在第一个问题之后() 我现在知道如何确定我的CPU是否有64位体系结构。但拥有64位体系结构并不意味着它可以处理2^64(=16777216 TB) 例如: 如果我运行这段代码:C# 我的CPU支持多少内存?,c#,.net,memory-management,32bit-64bit,cpu-architecture,C#,.net,Memory Management,32bit 64bit,Cpu Architecture,这是我的第二个问题,在第一个问题之后() 我现在知道如何确定我的CPU是否有64位体系结构。但拥有64位体系结构并不意味着它可以处理2^64(=16777216 TB) 例如: 如果我运行这段代码: ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_Processor"); ManagementObjectCollection cpus = se
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()上查找我的CPU,您将看到它只能处理32GB的内存。现在,我如何从我的计算机中提取这些信息
警告:这不是关于我的操作系统支持多少内存的问题。我使用的是32位WinXP,因此它只支持4GB。简单的回答是,您无法从计算机上获取这些信息 复杂的答案是,有5个因素会影响您正在搜索的值:
因此,基本上有很多因素和规格可以考虑,但是没有真正的方法来获得一个精确系统的可寻址内存的确切数量。只是说清楚,“我的CPU支持的内存”是指可以寻址的物理内存。你是在问PAE支持吗?是的,我是说物理记忆。是的,PAE支持(对于32位体系结构)很好,但也有64位CPU的地址空间。只是一个注释,但HAL不确定您是否会得到它。操作系统没有真正的理由知道硬件支持多少可寻址内存,只有硬件支持多少可寻址内存。我不认为这是纯粹的CPU-bios还必须支持内存寻址,硬件必须有足够的内存插槽。请评论。