System.Environment.ProcessorCount
返回逻辑处理器的数量
http://msdn.microsoft.com/en-us/library/system.environment.processorcount.aspx http://msdn.microsoft.com/en-us/library/system.environment.processorcount.aspx
对于物理处理器数量,您可能需要使用 WMI - XP/Win2k3 及以上版本支持以下元数据(Vista/Win2k8 之前的 SP 中启用了该功能)。
Win32_ComputerSystem.NumberOfProcessors返回物理计数
Win32_ComputerSystem.NumberOfLogicalProcessors返回逻辑(废话!)
请注意,超线程 CPU 看起来与多核 CPU 相同,但性能特征却不同。very不同的。
要检查启用 HT 的 CPU,请检查 Win32_Processor 的每个实例并比较这两个属性。
Win32_Processor.NumberOfLogicalProcessors
Win32_Processor.NumberOfCores
在多核系统上,这些值通常相同。
另外,请注意可能有多个处理器组,这常见于具有大量处理器的计算机上。默认情况下.Net 将仅使用第一个处理器组 https://stackoverflow.com/questions/27965962/c-sharp-environment-processorcount-does-not-always-return-the-full-number-of-log- 这意味着默认情况下,线程将仅使用第一个处理器组中的 CPU,并且Environment.ProcessorCount
将仅返回该组中的 CPU 数量。根据阿拉斯泰尔·莫的回答 https://stackoverflow.com/questions/27965962/c-sharp-environment-processorcount-does-not-always-return-the-full-number-of-log/30456753#30456753,可以通过更改 app.config 来更改此行为,如下所示:
<configuration>
<runtime>
<Thread_UseAllCpuGroups enabled="true"/>
<GCCpuGroup enabled="true"/>
<gcServer enabled="true"/>
</runtime>
</configuration>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)