2009-11-30 1 views
0

Я знаю, как получить тип процессора, возможно, это единственный способ, но я на самом деле ищу способ определить из приложения, работает ли он на многоядерном процессоре или на гиперпоточном однопроцессорном процессоре, основной процессор.Как я могу определить программно, будь то многоядерные, гиперпотоковые или многопроцессорные?

(справочная информация: хостинг-провайдеры некоторых из моих клиентов очень расплывчаты в отношении того, какие ресурсы они предоставляют с помощью изображений VMWare.Это приложение должно работать на многоядерных процессорах, но с момента его последнего «перемещения», Обычно на многоядерных ядрах один сердечник на одном потоке, а не на другом. На этом «многоядерном» процессоре шип даже в однопоточных приложениях.

ответ

4

System.Environment.ProcessorCount Какой будут также включать гиперпотоковые процессоры. Какой Vmware может или не может быть выставлен. Скорее всего, он будет выставлен, если процессор включен VT, и вы используете технологию гипервизора с поддержкой baremetal.

Если у вас есть XP-SP3/Win2k3 или выше, вы можете использовать WMI, чтобы вытащить:

Win32_ComputerSystem.NumberOfProcessors returns physical count 

Win32_ComputerSystem.NumberOfLogicalProcessors returns logical count 

Если значения совпадают, то скорее всего ваша система не имеет HT или не быть включенным ,

Вы можете начать изучать, как вытащить информацию WMI в .NET с this tutorial.

+0

Я знаю WMI, спасибо. Я попробую это, это может сработать. Странно, что и taskmgr, и CPU-Z дают одинаковое количество процессоров. Но CPU-Z показывает один ядро ​​на процессор, и я уверен, что тип первоначально (физически) - это quadcore. Это может быть сложно понять. – Abel

+0

Дайте это посмотреть: http://software.intel.com/en-us/articles/hyper-threading-technology-and-multi-core-processor-detection/ Я нету смотрел видео. У меня есть подозрение, что вы используете программное обеспечение vmware или версию, которая не поддерживает VT, или она отключена в BIOS. в этом случае это просто планирование вашей виртуальной машины на двух ядрах. –

+0

http://communities.vmware.com/docs/DOC-5101 обсуждение некоторых вопросов о гиперпотоке и ESX, если вы используете это как ваш гиперсектор на основе baremetal, показывая, что ESX может планировать виртуальные машины на виртуальные ядра. Упоминается, что виртуальные ядра не используются до тех пор, пока спрос не будет превышен. Интересно, как все будет работать на процессорах с поддержкой VT, хм. Если я правильно помню, вы можете связать VM в ESX с конкретными процессорами. –

Смежные вопросы