Почему WinAPI GetSystemInfo сообщает, что мой четырехъядерный компьютер имеет 8 ядер? - PullRequest
2 голосов
/ 06 августа 2010

Я пытаюсь выяснить, как программно определить количество ядер процессора.Это код, который я использую:

SYSTEM_INFO sysinfo;
GetSystemInfo( &sysinfo );
std::cout << "CPU count: " << sysinfo.dwNumberOfProcessors << std::endl;

Он работает в Windows на iMac i7 через Boot Camp.Было бы неплохо узнать, что Apple допустила производственную ошибку и установила 8-ядерный процессор в мою машину вместо 4-ядерного.

Ответы [ 2 ]

7 голосов
/ 06 августа 2010

Если ваша машина является гиперпоточной, она будет иметь 8 виртуальных ядер.

Проверьте вкладку «Быстродействие» диспетчера задач Windows, посмотрите, сколько процессоров отображается.

4 голосов
/ 06 августа 2010

Это вызвано Hyper-Threading в вашем процессоре i7. Вы можете использовать функцию GetLogicalProcessorInformation для получения правильной информации о логических и физических ядрах. http://msdn.microsoft.com/en-us/library/ms683194

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...