我知道如何获得处理器类型,也许这是唯一的方法,但我实际上正在寻找 从应用程序确定它是在多核处理器上运行还是在超线程单核处理器

(背景:我的一些客户的托管服务提供商对于他们通过VMWare图像提供的资源非常模糊。这个应用程序应该在多核上运行,但自上次“移动”以来已经看到了有害的性能。通常,在多核上,一个核心上有一个核心而不是另一个核心。在这个“多核”上,即使在单线程应用程序上,两个处理器都会出现峰值。)

有帮助吗?

解决方案

System.Environment.ProcessorCount其中还包括超线程处理器。哪些Vmware可能会或可能不会公开。如果处理器启用了VT并且您正在使用支持裸机的虚拟机管理程序技术,则可能会暴露它。

如果你有XP-SP3 / WIN2k3或更高版本你可以使用WMI拉出来:

Win32_ComputerSystem.NumberOfProcessors returns physical count

Win32_ComputerSystem.NumberOfLogicalProcessors returns logical count

如果值相同,那么您的系统可能没有HT或没有启用它。

您可以从本教程

scroll top