Получение количества физических ядер процессоров

Я знаю, что могу использовать System.Environment.ProcessorCount для возврата количества «процессоров» в машине. Я пытаюсь выяснить, есть ли способ определить количество ядер в процессоре, не включая гиперпоточность в качестве «ядра». Например, на двухъядерном процессоре с гиперпоточностью System.Environment.ProcessorCount вернет 4, потому что есть 2 физических ядра, оба с гиперпоточностью. Я хочу вернуть 2, потому что физических ядер всего 2.

Я, кстати, использую C#.


person Icemanind    schedule 12.08.2010    source источник


Ответы (1)


Вы можете использовать WMI для получения количества ядер в системе. Этот аналогичный вопрос о переполнении стека включает пример кода: --> Как узнать количество ядер процессора через .NET/C#?

Важно помнить, что в некоторых системах это значение может быть недоступно; например, на Windows Server 2003 вам нужно загрузить исправление от Microsoft, чтобы заставить «NumberOfCores» работать.

person Pandincus    schedule 12.08.2010