0

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

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

4

1 回答 1

4

System.Environment.ProcessorCount 其中还将包括超线程处理器。哪个 Vmware 可能会或可能不会暴露。如果处理器启用了 VT 并且您使用的是启用了裸机的虚拟机管理程序技术,则它被暴露的可能性会更高。

如果你有XP-SP3/WIN2k3或以上版本可以使用WMI拔出:

Win32_ComputerSystem.NumberOfProcessors returns physical count

Win32_ComputerSystem.NumberOfLogicalProcessors returns logical count

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

您可以从本教程开始探索如何在 .NET 中提取 WMI 信息。

于 2009-11-30T00:30:42.990 回答