Использование неуправляемого C++ на платформе Windows, есть ли простой способ определить количество процессорных ядер, которые имеет моя хост-машина?Подсчет процессоров с использованием C++ под Windows
ответ
Вы можете использовать GetLogicalProcessorInformation, чтобы получить необходимую информацию.
ETA:
Как упомянуто в вопросе комментатор связаны, другой (проще) способ сделать это будет через Getsysteminfo:
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
numCPU = sysinfo.dwNumberOfProcessors;
Похоже GetLogicalProcessorInformation бы дать вам более подробную информацию, но если вам нужно всего количество процессоров, GetSystemInfo, вероятно, будет работать нормально.
Только то, что Доктор приказывает, работает. Благодаря! –
Заканчивать GetLogicalProcessorInformation
Я заметил, что есть среда переменной NUMBER_OF_PROCESSORS
на XP, но я не мог найти его на сайте Microsoft. Я считаю, что это был бы самый простой способ.
size_t getProcessorCores()
{
DWORD process, system;
if(GetProcessAffinityMask(GetCurrentProcess(), &process, &system))
{
int count = 0;
for(int i = 0; i < 32; i++)
if(system & (1 << i))
count++;
return count;
}
// may be we hav't PROCESS_QUERY_INFORMATION access right
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
return sysinfo.dwNumberOfProcessors;
}
size_t getAvailableProcessorCores()
{
DWORD process, system;
if(GetProcessAffinityMask(GetCurrentProcess(), &process, &system))
{
int count = 0;
for(int i = 0; i < 32; i++)
if(process & (1 << i))
count++;
return count;
}
// may be we hav't PROCESS_QUERY_INFORMATION access right
SYSTEM_INFO sysinfo;
GetSystemInfo(&sysinfo);
return sysinfo.dwNumberOfProcessors;
}
- 1. Исполняемый с использованием нескольких процессоров
- 2. Проблемы с использованием системных() команд под Windows
- 3. UTC timestamp в миллисекундах с использованием C++ под Windows
- 4. Обертка неуправляемого кода с использованием нескольких процессоров
- 5. памяти программы C под Windows,
- 6. Подсчет строк в datagridview с использованием C#
- 7. Подсчет сравнений в Heapsort с использованием C#
- 8. подсчет дубликатов с использованием карты C++
- 9. модулей различных типов процессоров
- 10. Поиск файлов с использованием icicles в Emacs под Windows 7
- 11. C++: удаленно выполнить команду под машиной Windows
- 12. Разработка на базе Windows для процессоров ARM
- 13. подсчет детей с использованием rapturexml
- 14. Как узнать количество процессоров с использованием python
- 15. Java - непараллельный код с использованием нескольких процессоров
- 16. Ускорение кода MATLAB с использованием графических процессоров?
- 17. Использование многоядерных процессоров и процессоров
- 18. Подсчет с использованием предопределенного списка
- 19. Вызов сценариев оболочки в Windows под MSYS с использованием команды
- 20. Обнаружение системы на плате чипа (SOC) под Windows с C++
- 21. Подсчет значений с использованием критериев
- 22. использовать несколько процессоров на Django в Windows
- 23. Подсчет SCC с использованием DFS
- 24. Ошибки Gcovr под Windows
- 25. Несколько процессоров и PerformanceCounter C#
- 26. Анализатор/библиотека процессоров кода C++
- 27. Пакетные файлы Windows и несколько процессоров
- 28. C: подсчет длины строки перед использованием scanf
- 29. Получите количество процессоров в Linux, используя C
- 30. Как создать канал в c под Windows
Связанный вопрос: http://stackoverflow.com/questions/150355 – macbirdie
возможно дубликат [Программный найти количество ядер на машине] (http://stackoverflow.com/questions/150355/programmatically- find-the-number-of-core-on-a-machine) – sschuberth